US5832502A - Conversation index builder - Google Patents

Conversation index builder Download PDF

Info

Publication number
US5832502A
US5832502A US08/674,352 US67435296A US5832502A US 5832502 A US5832502 A US 5832502A US 67435296 A US67435296 A US 67435296A US 5832502 A US5832502 A US 5832502A
Authority
US
United States
Prior art keywords
record
child
parent
time
index
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
US08/674,352
Inventor
Peter E. Durham
Max L. Benson
Miu Fung Ang Apacible
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US08/674,352 priority Critical patent/US5832502A/en
Assigned to MICROSOFT reassignment MICROSOFT ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: APACIBLE, MIU FUNG ANG, BENSON, MAX L., DURHAM, PETER E.
Application granted granted Critical
Publication of US5832502A publication Critical patent/US5832502A/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Definitions

  • the invention generally relates to a technique for generating a conversation index to enable electronic mail (E-mail) messages to be sorted and displayed according to their logical positions in a conversation.
  • E-mail electronic mail
  • Electronic mail messages are typically grouped together for display to a user according to a single natural property.
  • the messages may be sorted according to their time of delivery, or the name of the sender of a message, or the subject of a message.
  • the key information which determines the position of a message in the ordering of the E-mail can be directly obtained from the message. Sorting items with respect to a key property is well known in the art.
  • Ordering a collection of E-mail messages by their position in a conversation is more complicated, since the position of a particular message depends on the position of the previous message it is related to, and not on one of its natural properties (such as delivery time or subject).
  • a container may hold a collection of messages related to a particular conversation, but may be missing some of the reply messages (child messages) depending on how the collection was assembled. Further, the collection may not include the initial or parent message. It is therefore a problem to order messages by their position in a conversation because the ordering depends on more than a natural property of the message.
  • the invention provides a record index that is generated for data records of a collection which enables the data records to be sorted according to their logical position in the collection.
  • a unique parent index is generated that contains at least one time parameter indicating a parent data record is created, and the parent index is attached to the data record as its record index.
  • a child index is generated that contains at least one time parameter indicating a child data record is created. The child index is appended to the parent index and the combination is attached to the child data record as its record index.
  • a list of the data records is then sorted by their record indexes.
  • Implementations of the technique may include one or more of the following features.
  • the parent index may include a unique identifier combined with the time parameter, and the time parameter may represent a universal time.
  • the child index may include a time delta representative of the difference between the time the child data record was created and the time that its parent data record was created. Alternately, the child index may include a time value equal to the creation time of the child data record.
  • the child index may also include one or more of a random number or a sequence number to minimize collisions between child data records.
  • the list of data records may be displayed by indenting the subject field of each listed data record in proportion to the number of child indexes it contains to reflect the depth of the data records in the collection.
  • the method finds application in the field of sorting and ordering E-mail messages.
  • a conversation index is generated for the E-mail messages to enable the collection and sorting of the messages according to their logical position in a conversation.
  • the conversation index technique is advantageous for organizing E-mail for several reasons. First, all the information necessary to place the message correctly in the conversation is encapsulated in a single property, rather than derived from other properties. In addition, the placement information is computed at message creation time rather than at sort time. Further, a simple sort on the conversation index generates the correct ordering of the messages, which is much less expensive than building a conversation tree based on parentage. Lastly, the conversation index information remains attached to the message, and is independent of other messages in a collection, so that messages appear properly indented and sorted whether or not other messages in a conversation exist in the collection. If messages in a conversation are distributed and then re-collected, the conversation index will still be useful and will still permit the desired ordering.
  • FIG. 1A is a simplified block diagram of a Header Block
  • FIG. 1B is a simplified block diagram of a Child Block
  • FIG. 2 is a flowchart of a technique for generating a conversation index according to the invention.
  • FIGS. 3A-3D comprise a simplified example of how the conversation index is generated and utilized to sort E-mail messages.
  • a Conversation Index Builder generates a single binary property called a Conversation Index for an E-mail message which encapsulates and encodes the information necessary to place the message into a conversation order.
  • the same Conversation Index is used for each new message of a conversation, and its most significant part corresponds to the time of the original or parent message plus a unique value.
  • the time of a reply message is appended to the parent message's Conversation Index along with some random values.
  • the time of a reply to a reply is appended to the already existing Conversation Index of the parent and the previous reply, and so forth. Therefore, when sorting the E-mail messages, the most significant part is used to gather all messages in the same conversation together, and then the messages are ordered by their commencement times.
  • Conversation Index There are two opposing influences on the design of a Conversation Index. First, it is important to minimize collisions between messages. A collision occurs if two different messages receive the same Conversation Index, and then it will not be possible to distinguish between them because the two messages would sort to the same position in the conversation, and any replies to either message would follow both of them. Thus, the same Conversation Index must not be assigned to different messages.
  • the second influence is size of the key data used for sorting E-mail.
  • Many E-mail systems have limitations on the size of properties which can be used as the key for a search. For example, some E-mail systems impose a 256-byte restriction.
  • the elements of a Conversation Index must not be larger than necessary, otherwise the depth at which messages can be sorted using the Conversation Index as the key is reduced. If the Conversation Index is too large, the technique would fail to perform as desired because significant information beyond the key size limitations would not be considered during the ordering process.
  • the Conversation Index can be divided into two sections: a Header Block, and a collection of zero or more Child Blocks.
  • FIG. 1A is a simplified block diagram of a 22-byte Header Block 1.
  • the Header Block contains a one-byte Format Code 2 that is always "01".
  • the Format Code is included in the event that some future change may be required to the Conversation Index format.
  • the Header Block also contains a 5-byte Conversation Time 4, which is the time the first message in the conversation was saved or sent.
  • the Conversation Time may encompass bits 55 to 16 of the time as expressed in the Microsoft WindowsTM 8-byte FILETIME format (where bit 63 is most significant, and bits 0-15 are not considered to be significant), or other format based on Universal Time. (Universal Time means Greenwich mean time without daylight savings time corrections, which allows the technique to be used in E-mail systems located worldwide).
  • the Header Block 1 contains a 16-byte Globally Unique Identifier (GUID) 6, which may be generated by using, for example, the Microsoft Windows CoCreateGuid mechanism. Other mechanisms could be used to generate a GUID as long as the result is a unique 16-byte identifier. The GUID ensures that every conversation will have a distinct Header Block, even if two conversations are started at exactly the same time.
  • GUID Globally Unique Identifier
  • FIG. 1B is a simplified block diagram of a 5-byte Child Block 10 that is appended to a Header Block when a reply to a parent message is created.
  • the Child Block contains a 1-bit Time Delta Code 12, which can be either "0" or "1". A “0" Time Delta Code indicates High Resolution format, and a "1" Time Delta Code indicates Low Resolution Format.
  • the Child Block also contains a 31-bit Time Delta 14, which specifies the time the reply message was first saved or sent. If the reply message is a direct response to the parent message, the Time Delta is the absolute value of the difference between the time the reply message was sent and the time of the parent message, which is computed from the Conversation Time 4. If the reply message is a response to another reply message, the Time Delta is the absolute value of the difference between the time this reply message was sent and the time that the other reply message was sent, and this result is appended to any earlier Time Deltas.
  • the Child Block also contains a 4-bit Random Number 16 which helps to prevent collisions.
  • the Child Block contains a 4-bit Sequence Number 18, which is incremented each time a Conversation Index is generated, which also helps to prevent collisions. In one embodiment, the Sequence Number resets after reaching fifteen.
  • Time Delta Code of FIG. 1B is "0" to indicate High Resolution Format
  • the Time Delta contains bits 48 to 18 of the Conversation Time. This specifies the time to a resolution of about 26.21 milliseconds (about 1/50 second), and can express Time Deltas from 0 to 1.78 years.
  • the Time Delta Code is "1" to indicate Low Resolution Format
  • the Time Delta contain bits 53 to 23 of the Conversation Time. This specifies the time to a resolution of about 838 milliseconds (about 1 second), and can express Time Deltas from 0 to about 57.12 years.
  • Time Delta Code in a more significant position than the Time Delta ensures that messages with the higher resolution Time Delta (created within 1.78 years of the beginning of the conversation) sort before messages with the lower resolution Time Delta (created from 1.78 years to 57.12 years after the beginning of the conversation).
  • FIG. 2 is a flowchart 50 of a technique for generating a Conversation Index for E-mail messages.
  • step 51 it is determined if a Conversation Index was provided (i.e., is this a parent message or a reply). If a Conversation Index is not provided, then in step 52 a Format Code of "01" is added to a return buffer for insertion into a Header Block of this parent message, and in step 54 bits 55 to 16 of the current time are added to the return buffer. Lastly, a GUID is generated and then added to the return buffer in step 56 to complete the Header Block. The program is then reset in step 58.
  • step 60 the validity of the parent Conversation Index is verified.
  • the parent Conversation Index is checked in step 60 to verify that the Header Block is the requisite number of bytes in length indicating that data has not been corrupted, and if any Child Blocks exist they are also checked for the correct format. If the data is in the correct format, then in step 62, the parent Conversation Index is copied to a return buffer, and in step 64 the parent time for this message is computed by taking the Conversation Time and adding all of the Time Deltas that may exist. The Current Time is then subtracted from the parent time in step 66 to result in a new Time Delta.
  • step 68 if the Time Delta is less than 1.78 years then in step 70 the Time Delta Code is set to zero, in step 72 bits 48-18 of the Time Delta are added to the return buffer, in step 74 a 4-bit Random Number is added, and in step 76 a 4-bit Sequence Number is added to the Child Block. The program is then reset in step 77.
  • step 68 the Time Delta is more than 1.78 years, then the Time Delta Code is set to "1" in step 78, bits 53-23 are added to the Time Delta in step 80, a 4-bit Random Number is added in step 74, and lastly, in step 76 a 4-bit Sequence Number is added before the program is reset in step 77. Therefore, to generate the Conversation Index of a reply message, the Conversation Index of the parent message is used along with the Time Delta of the reply message and the Time Deltas of any intervening messages.
  • the Conversation Index Builder makes the Child Blocks unique by maintaining a degree of time resolution that is unlikely to allow collisions, and adds a 4-bit Random Number and a 4-bit Sequence Number to address cases when time collisions may occur.
  • the 22-byte Header Blocks and 5-byte Child Blocks permit proper behavior for E-mail conversations having reply depths of up to 46 indentations (which is (256-22) ⁇ 5). Indenting the E-mail messages to this degree is adequate for the majority of conversations.
  • FIGS. 3A-3D comprise a simplified example of how the Conversation Index is generated and utilized to sort E-mail messages.
  • the example uses the collection of messages shown in FIG. 3A, which are in chronological order and have subject fields that describe their relationships to other messages.
  • the Conversation Index will be generated in chronological order, and parts of the mechanism will be ignored for simplicity.
  • the Format Code which is always 01
  • the Time Delta Code since all messages are created across a span of less than 1.78 years
  • the Random Number and Sequence Number of the Child Blocks since there will be no collisions in this example).
  • the indented items of FIG. 3D are proportional to the number of Child Blocks in the Conversation Index and indicate the depth in the conversation, resulting in the desired visual display. For example, if a reply message contains two Time Deltas then it is indented twice.
  • the layout and ordering of the messages as shown in FIG. 3D presents an intuitive display to a user.
  • the display indicates that Aaron's message has three replies, that Claudia replied to Beatrice's reply to Aaron, and that Francesca's message begins a new conversation. Therefore, the present technique results in a display where reply messages are shown indented beneath a parent message, and appear in the order they were created.
  • messages which are replies to other messages, such as Claudia's message appear indented under their parent message before any siblings of the parent, even if generated after some or all of the sibling messages.
  • multiple replies to the same message appear in the time order of their creation.
  • the Conversation Index has been disclosed as using Universal Time and a Time Delta as part of the sorting key.
  • time used herein encompasses any other type of generated, continuously increasing or continuously decreasing number.
  • any number that continuously changes in the same direction may be substituted for the Conversation Time and Time Delta parameters described above.
  • the size of the Header Blocks and Child Blocks can be modified to satisfy specific requirements. For example, if 30 levels of response is all that is required, then the Conversation Index could include smaller blocks of data or eliminate some of the data, such as the sequence number, at the risk of increasing the chances of a collision between messages.
  • a record or data file may be stored in a container, such as in a public or private folder, that is accessible to multiple users who may all work on revisions.
  • the users may also generate a record that is a revision of a record that has already been revised. In such a case, it may be important to keep track of who worked on what revision of which record in order to eventually assemble a final document.
  • This situation poses the problem of tracking and ordering a series of documents or records which may be stored in a public or private folder, which is similar to the problem of establishing a conversational index ordering for E-mail messages.
  • a record index similar to the Conversation Index described above could be generated and attached to a parent data record and to each child data record of a collection to enable a logical sorting of all of the records.

Abstract

A technique for generating a unique record index for a collection of data records. A parent index is generated and attached to a parent data record, and serves as the record index. When a child data record is generated, a child index is generated and is appended to its parent index, and the combination is the record index for that child data record. The record index allows a collection of data records to be sorted and displayed efficiently according to their logical position in a collection. The technique finds application in an electronic mail messaging system, wherein a conversation index is generated for each electronic message.

Description

BACKGROUND OF THE INVENTION
The invention generally relates to a technique for generating a conversation index to enable electronic mail (E-mail) messages to be sorted and displayed according to their logical positions in a conversation.
Electronic mail messages are typically grouped together for display to a user according to a single natural property. For example, the messages may be sorted according to their time of delivery, or the name of the sender of a message, or the subject of a message. In these cases the key information which determines the position of a message in the ordering of the E-mail can be directly obtained from the message. Sorting items with respect to a key property is well known in the art.
Ordering a collection of E-mail messages by their position in a conversation is more complicated, since the position of a particular message depends on the position of the previous message it is related to, and not on one of its natural properties (such as delivery time or subject). In addition, a container may hold a collection of messages related to a particular conversation, but may be missing some of the reply messages (child messages) depending on how the collection was assembled. Further, the collection may not include the initial or parent message. It is therefore a problem to order messages by their position in a conversation because the ordering depends on more than a natural property of the message.
Early E-mail programs utilized a string of properties to track messages in a conversation. For example, when an original message was created a message identifier (Message ID) was assigned which doubled as a conversation identifier (Conversation ID). The Message ID and Conversation ID were random 32-bit integers. Consequently, when a reply message was created based on an earlier message, the reply message inherited the Conversation ID, had a new message ID assigned, and then copied the Message ID of its parent to a Parent ID. The collection of properties enabled messages having the same Conversation ID to be grouped together. In addition, a conversation tree could be built by backtracking through all the messages having the same Parent ID. However, there are several flaws with this approach. First, it requires working with all of the messages in a conversation at the same time, re-ordering them based on the derived parentage tree. Such a complex operation is expensive in terms of processing time consumed. Second, such an approach fails if any of the messages in the ancestry chain are missing, because the Parent ID of an orphaned child message cannot be found.
Internet news items have a Message ID which is a printable string containing the originating site. Items which are derived from other items contain a list of references which is the collected set of ancestor Message IDs. This technique is slightly more robust in the case of missing items in the ancestry tree, as the item can be placed under the deepest reference found. However, such a technique is expensive in terms of processing time consumed to generate the required data.
SUMMARY OF THE INVENTION
The invention provides a record index that is generated for data records of a collection which enables the data records to be sorted according to their logical position in the collection. A unique parent index is generated that contains at least one time parameter indicating a parent data record is created, and the parent index is attached to the data record as its record index. A child index is generated that contains at least one time parameter indicating a child data record is created. The child index is appended to the parent index and the combination is attached to the child data record as its record index. A list of the data records is then sorted by their record indexes.
Implementations of the technique may include one or more of the following features. The parent index may include a unique identifier combined with the time parameter, and the time parameter may represent a universal time. The child index may include a time delta representative of the difference between the time the child data record was created and the time that its parent data record was created. Alternately, the child index may include a time value equal to the creation time of the child data record. The child index may also include one or more of a random number or a sequence number to minimize collisions between child data records. The list of data records may be displayed by indenting the subject field of each listed data record in proportion to the number of child indexes it contains to reflect the depth of the data records in the collection.
The method finds application in the field of sorting and ordering E-mail messages. A conversation index is generated for the E-mail messages to enable the collection and sorting of the messages according to their logical position in a conversation.
The conversation index technique is advantageous for organizing E-mail for several reasons. First, all the information necessary to place the message correctly in the conversation is encapsulated in a single property, rather than derived from other properties. In addition, the placement information is computed at message creation time rather than at sort time. Further, a simple sort on the conversation index generates the correct ordering of the messages, which is much less expensive than building a conversation tree based on parentage. Lastly, the conversation index information remains attached to the message, and is independent of other messages in a collection, so that messages appear properly indented and sorted whether or not other messages in a conversation exist in the collection. If messages in a conversation are distributed and then re-collected, the conversation index will still be useful and will still permit the desired ordering.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A is a simplified block diagram of a Header Block;
FIG. 1B is a simplified block diagram of a Child Block;
FIG. 2 is a flowchart of a technique for generating a conversation index according to the invention; and
FIGS. 3A-3D comprise a simplified example of how the conversation index is generated and utilized to sort E-mail messages.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
A Conversation Index Builder generates a single binary property called a Conversation Index for an E-mail message which encapsulates and encodes the information necessary to place the message into a conversation order. The same Conversation Index is used for each new message of a conversation, and its most significant part corresponds to the time of the original or parent message plus a unique value. In particular, the time of a reply message is appended to the parent message's Conversation Index along with some random values. The time of a reply to a reply is appended to the already existing Conversation Index of the parent and the previous reply, and so forth. Therefore, when sorting the E-mail messages, the most significant part is used to gather all messages in the same conversation together, and then the messages are ordered by their commencement times. Since the reply time is appended to the parent Conversation Index, replies to a replay message will sort after that message, but before any siblings of the parent. Therefore, when used as the key property in a simple sort, the Conversation Index results in the message being placed into the correct position in the conversation.
There are two opposing influences on the design of a Conversation Index. First, it is important to minimize collisions between messages. A collision occurs if two different messages receive the same Conversation Index, and then it will not be possible to distinguish between them because the two messages would sort to the same position in the conversation, and any replies to either message would follow both of them. Thus, the same Conversation Index must not be assigned to different messages.
The second influence is size of the key data used for sorting E-mail. Many E-mail systems have limitations on the size of properties which can be used as the key for a search. For example, some E-mail systems impose a 256-byte restriction. Thus, the elements of a Conversation Index must not be larger than necessary, otherwise the depth at which messages can be sorted using the Conversation Index as the key is reduced. If the Conversation Index is too large, the technique would fail to perform as desired because significant information beyond the key size limitations would not be considered during the ordering process.
The Conversation Index can be divided into two sections: a Header Block, and a collection of zero or more Child Blocks.
FIG. 1A is a simplified block diagram of a 22-byte Header Block 1. The Header Block contains a one-byte Format Code 2 that is always "01". The Format Code is included in the event that some future change may be required to the Conversation Index format. The Header Block also contains a 5-byte Conversation Time 4, which is the time the first message in the conversation was saved or sent. The Conversation Time may encompass bits 55 to 16 of the time as expressed in the Microsoft Windows™ 8-byte FILETIME format (where bit 63 is most significant, and bits 0-15 are not considered to be significant), or other format based on Universal Time. (Universal Time means Greenwich mean time without daylight savings time corrections, which allows the technique to be used in E-mail systems located worldwide). The more significant bits 55-16 are stored first, so that sorting on the Conversation Index effectively sorts on the Conversation Time. (These bits 55-16 are utilized because it has been determined that the most significant bit resolves times to about 3 milliseconds, and because bits 63-56 will not change until about the year 2062.) Lastly, the Header Block 1 contains a 16-byte Globally Unique Identifier (GUID) 6, which may be generated by using, for example, the Microsoft Windows CoCreateGuid mechanism. Other mechanisms could be used to generate a GUID as long as the result is a unique 16-byte identifier. The GUID ensures that every conversation will have a distinct Header Block, even if two conversations are started at exactly the same time.
FIG. 1B is a simplified block diagram of a 5-byte Child Block 10 that is appended to a Header Block when a reply to a parent message is created. The Child Block contains a 1-bit Time Delta Code 12, which can be either "0" or "1". A "0" Time Delta Code indicates High Resolution format, and a "1" Time Delta Code indicates Low Resolution Format. The Child Block also contains a 31-bit Time Delta 14, which specifies the time the reply message was first saved or sent. If the reply message is a direct response to the parent message, the Time Delta is the absolute value of the difference between the time the reply message was sent and the time of the parent message, which is computed from the Conversation Time 4. If the reply message is a response to another reply message, the Time Delta is the absolute value of the difference between the time this reply message was sent and the time that the other reply message was sent, and this result is appended to any earlier Time Deltas.
Again referring to FIG. 1B, the Child Block also contains a 4-bit Random Number 16 which helps to prevent collisions. Lastly, the Child Block contains a 4-bit Sequence Number 18, which is incremented each time a Conversation Index is generated, which also helps to prevent collisions. In one embodiment, the Sequence Number resets after reaching fifteen.
If the Time Delta Code of FIG. 1B is "0" to indicate High Resolution Format, then the Time Delta contains bits 48 to 18 of the Conversation Time. This specifies the time to a resolution of about 26.21 milliseconds (about 1/50 second), and can express Time Deltas from 0 to 1.78 years. If the Time Delta Code is "1" to indicate Low Resolution Format, then the Time Delta contain bits 53 to 23 of the Conversation Time. This specifies the time to a resolution of about 838 milliseconds (about 1 second), and can express Time Deltas from 0 to about 57.12 years. Storing the Time Delta Code in a more significant position than the Time Delta ensures that messages with the higher resolution Time Delta (created within 1.78 years of the beginning of the conversation) sort before messages with the lower resolution Time Delta (created from 1.78 years to 57.12 years after the beginning of the conversation).
The use of different resolutions that depend upon the time between messages helps prevent collisions. In the present scheme, a message collision would occur only if two users reply to the same message within 26 milliseconds of one another during the first 1.78 years after the message is created, or within the same second after that point. Therefore, the present technique will span the full useful lifetime of the messaging system. Further, the format of the Conversation Index is tuned for compactness, which is advantageous in environments that limit the length of sort keys.
FIG. 2 is a flowchart 50 of a technique for generating a Conversation Index for E-mail messages. In step 51, it is determined if a Conversation Index was provided (i.e., is this a parent message or a reply). If a Conversation Index is not provided, then in step 52 a Format Code of "01" is added to a return buffer for insertion into a Header Block of this parent message, and in step 54 bits 55 to 16 of the current time are added to the return buffer. Lastly, a GUID is generated and then added to the return buffer in step 56 to complete the Header Block. The program is then reset in step 58.
Referring again to step 51 of FIG. 2, if a Conversation Index is supplied, which signifies that this message is a reply message, then a Child Block is required. First, in step 60 the validity of the parent Conversation Index is verified. The parent Conversation Index is checked in step 60 to verify that the Header Block is the requisite number of bytes in length indicating that data has not been corrupted, and if any Child Blocks exist they are also checked for the correct format. If the data is in the correct format, then in step 62, the parent Conversation Index is copied to a return buffer, and in step 64 the parent time for this message is computed by taking the Conversation Time and adding all of the Time Deltas that may exist. The Current Time is then subtracted from the parent time in step 66 to result in a new Time Delta. In step 68, if the Time Delta is less than 1.78 years then in step 70 the Time Delta Code is set to zero, in step 72 bits 48-18 of the Time Delta are added to the return buffer, in step 74 a 4-bit Random Number is added, and in step 76 a 4-bit Sequence Number is added to the Child Block. The program is then reset in step 77.
However, if in step 68 the Time Delta is more than 1.78 years, then the Time Delta Code is set to "1" in step 78, bits 53-23 are added to the Time Delta in step 80, a 4-bit Random Number is added in step 74, and lastly, in step 76 a 4-bit Sequence Number is added before the program is reset in step 77. Therefore, to generate the Conversation Index of a reply message, the Conversation Index of the parent message is used along with the Time Delta of the reply message and the Time Deltas of any intervening messages.
The same Header Block will never be assigned to E-mail messages in different conversations because each conversation contains a unique 16-byte GUID. However, such a large item cannot be included in every Child Block, because if it were then the Conversation Index would grow too large too quickly. Consequently, instead of using a GUID in the Child Block, the Conversation Index Builder makes the Child Blocks unique by maintaining a degree of time resolution that is unlikely to allow collisions, and adds a 4-bit Random Number and a 4-bit Sequence Number to address cases when time collisions may occur. On systems limited to a 256-byte key size, the 22-byte Header Blocks and 5-byte Child Blocks permit proper behavior for E-mail conversations having reply depths of up to 46 indentations (which is (256-22)÷5). Indenting the E-mail messages to this degree is adequate for the majority of conversations.
FIGS. 3A-3D comprise a simplified example of how the Conversation Index is generated and utilized to sort E-mail messages. The example uses the collection of messages shown in FIG. 3A, which are in chronological order and have subject fields that describe their relationships to other messages. In addition, the Conversation Index will be generated in chronological order, and parts of the mechanism will be ignored for simplicity. In particular, not shown in FIGS. 3A-3D are the Format Code (which is always 01), the Time Delta Code (since all messages are created across a span of less than 1.78 years), and the Random Number and Sequence Number of the Child Blocks (since there will be no collisions in this example).
Referring to FIG. 3B, Aaron creates a parent message, so the Conversation Index Builder generates a Conversation Index containing the format code, the time stamp specifying Jan. 1, 1996 at 9 a.m., and the unique GUID, which we will call G1. We can then abbreviate the Conversation Index of Aaron's message as 1/1-09:00-G1!.
Next, Beatrice replies to Aaron's message. The Time Delta between 09:00 and 10:00 is one hour, which is shown as +1h!. The Conversation Index for Beatrice's message is thus 1/1-09:00-G1! +1h!. Francesca then starts a new conversation, and the Conversation Index for this new parent message contains the format code, the time stamp (specifying Jan. 1, 1996 at 1 p.m.) and a unique GUID, which we will call G2. The Conversation Index of Francesca's message is thus 1/1-13:00-G2!. Next, Dieter replies to Aaron's message. The Time Delta between 09:00 (Aaron's message) and 15:00 (Dieter's message) is six hours, so the Conversation Index for Dieter's reply message is 1/1-09:00-G1! +6h!. The next days, Ebru replies to Aaron's message so the Time Delta between 1/1 at 09:00 and 1/2 at 09:00 is 24 hours, and the Conversation Index for Ebru's reply message is 1/1-09:00-G1! +24h!. Finally, Claudia replies to Beatrice's message. The Time Delta between Beatrice's message at 10:00 on 1/1 and Claudia's reply at 14:00 on 1/2 is 28 hours, which is appended to the Time Delta of Beatrice's message of +1h!, so the Conversation Index is 1/1-09:00-G1! +1h! +28h!.
Sorting the list shown in FIG. 3B by the Conversation Index, and moving earlier times before later times, results in the list shown in FIG. 3C. Indenting the messages of the list of FIG. 3C results in the display shown in FIG. 3D. The indented items of FIG. 3D are proportional to the number of Child Blocks in the Conversation Index and indicate the depth in the conversation, resulting in the desired visual display. For example, if a reply message contains two Time Deltas then it is indented twice.
The layout and ordering of the messages as shown in FIG. 3D presents an intuitive display to a user. The display indicates that Aaron's message has three replies, that Claudia replied to Beatrice's reply to Aaron, and that Francesca's message begins a new conversation. Therefore, the present technique results in a display where reply messages are shown indented beneath a parent message, and appear in the order they were created. In addition, messages which are replies to other messages, such as Claudia's message, appear indented under their parent message before any siblings of the parent, even if generated after some or all of the sibling messages. Lastly, multiple replies to the same message appear in the time order of their creation.
Other embodiments of the invention are within the scope of the appended claims. For example, the Conversation Index has been disclosed as using Universal Time and a Time Delta as part of the sorting key. However, the word "time" used herein encompasses any other type of generated, continuously increasing or continuously decreasing number. Thus, any number that continuously changes in the same direction may be substituted for the Conversation Time and Time Delta parameters described above. Furthermore, the size of the Header Blocks and Child Blocks can be modified to satisfy specific requirements. For example, if 30 levels of response is all that is required, then the Conversation Index could include smaller blocks of data or eliminate some of the data, such as the sequence number, at the risk of increasing the chances of a collision between messages.
The disclosed technique may also be useful where records are created in response to other records, and where the genealogy of such records is important. For example, a record or data file may be stored in a container, such as in a public or private folder, that is accessible to multiple users who may all work on revisions. The users may also generate a record that is a revision of a record that has already been revised. In such a case, it may be important to keep track of who worked on what revision of which record in order to eventually assemble a final document. This situation poses the problem of tracking and ordering a series of documents or records which may be stored in a public or private folder, which is similar to the problem of establishing a conversational index ordering for E-mail messages. Thus, a record index similar to the Conversation Index described above could be generated and attached to a parent data record and to each child data record of a collection to enable a logical sorting of all of the records.

Claims (16)

What is claimed is:
1. In a collection of data records in which a plurality of the data records have a parent-child relationship so that when the data records in the collection are sorted according to individual record indices the data records will be positioned according to their parent-child relationships, a method for creating a record index for each data record of the data collection, comprising the steps of:
generating a record index for a parent data record in the collection by performing at least the steps of:
creating a unique header block comprising a time stamp parameter indicating the time said parent data record is created, and
attaching said header block to said parent data record as its record index; and
generating a record index for a child data record of said parent data record by performing at least the steps of:
creating a child block comprising a time stamp parameter indicating the time said child data record is created,
appending said child block to said header block, and
attaching the combined header and child blocks to said child data record as its record index.
2. The method of claim 1, wherein the parent record index comprises a unique identifier combined with the time stamp parameter indicating the time said parent record is created.
3. The method of claim 2, wherein the time stamp parameter indicating the time said parent record is created represents a universal time.
4. The method of claim 1, wherein the child record index comprises a time delta representative of the difference between the time that the child data record was created and the time that its parent data record was created.
5. The method of claim 1, wherein the child record index comprises at least one of either a random number and a sequence number to minimuze collisions between child data records.
6. The method of claim 1, further comprising the step or:
displaying a list of the collection of data records by indenting a subject field of each data record in proportion to the number of child indexes the record contains to reflect the depth of each data record in the collection.
7. The method of claim 1, wherein the data records are electronic mail messages, and a conversation index is generated for the electronic mail messages to enable the collection and sorting of the messages according to their logical position in a conversation.
8. The method of claim 1, further comprising the step of verifying the validity of the parent record index before generating a child record index.
9. In a collection of data records in which a plurality of the data records have a parent-child relationship so that when the data records in the collection are sorted according to individual record indices the data records will be positioned according to their parent-child relationships, a computer program product for creating a record index for each data record of the data collection comprising:
computer readable medium having computer executable instructions encoded thereon, said computer executable instructions comprising:
means for creating a unique header block comprising a time stamp parameter indicating the time a parent data record is created;
means for attaching said header block to said parent data record as its record index;
means for creating a child block comprising a time stamp parameter indicating the time a child data record of said parent data record is created;
means for appending said child block to said header block; and
means for attaching the combined header and child blocks to said child data record as its record index.
10. The computer program product of claim 9, wherein the parent record index comprises a unique identifier combined with the time stamp parameter indicating the time said parent record is created.
11. The computer program product of claim 10, wherein the time stamp parameter indicating the time said parent record is created represents a universal time.
12. The computer program product of claim 9, wherein the child record index comprises a time delta representative of the difference between the time that the child data record was created and the time that its parent data record was created.
13. The computer program product of claim 9, wherein the child record index comprises at least one of either a random number and a sequence number to minimize collisions between child data records.
14. The computer program product of claim 9, wherein the instructions further comprise means for displaying a list of the collection of data records by indenting a subject field of each data record in proportion to the number of child indexes the record contains to reflect the depth of each data record in the collection.
15. The computer program product of claim 9, wherein the data records are electronic mail messages, and the instructions generate a conversation index for the electronic mail messages to enable the collection and sorting of the messages according to their logical position in a conversation.
16. The computer program product of claim 9, wherein the instructions further comprise means for verifying the validity of the parent record index before generating a child record index.
US08/674,352 1996-07-02 1996-07-02 Conversation index builder Expired - Lifetime US5832502A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/674,352 US5832502A (en) 1996-07-02 1996-07-02 Conversation index builder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/674,352 US5832502A (en) 1996-07-02 1996-07-02 Conversation index builder

Publications (1)

Publication Number Publication Date
US5832502A true US5832502A (en) 1998-11-03

Family

ID=24706252

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/674,352 Expired - Lifetime US5832502A (en) 1996-07-02 1996-07-02 Conversation index builder

Country Status (1)

Country Link
US (1) US5832502A (en)

Cited By (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000043898A1 (en) * 1999-01-20 2000-07-27 Econvene, Inc. System and method to facilitate meetings of distributed individuals
WO2001061561A2 (en) * 2000-02-14 2001-08-23 Overx, Inc. Automated system for image archiving
US6330589B1 (en) * 1998-05-26 2001-12-11 Microsoft Corporation System and method for using a client database to manage conversation threads generated from email or news messages
WO2002065316A1 (en) * 2001-02-12 2002-08-22 Legato Systems, Inc. System and method of indexing unique electronic mail messages and uses for the same
US20030069892A1 (en) * 2001-10-10 2003-04-10 International Business Machines Corporation Relational view of electronic objects
US6687740B1 (en) 1999-09-21 2004-02-03 Neostar, Inc. System, method and article of manufacture for preventing the proliferation of unwanted electronic messages
US6704771B1 (en) 1999-09-21 2004-03-09 Neostar, Inc. Electronic message payload for interfacing with text contained in the message
US6874023B1 (en) * 1998-11-10 2005-03-29 Claria Corporation Web based email control center for monitoring and providing a sumary of the detected event information organized according to relationships between the user and network sites
US20050132053A1 (en) * 2002-02-05 2005-06-16 Rhode & Schwartz Gmbh & Co. Kg Message analysis device and message for displaying messages
US6950880B1 (en) * 2000-08-31 2005-09-27 Ncr Corporation System and method for standardizing component characteristic data submitted by a seller for use by a buyer
US20050223066A1 (en) * 2004-03-31 2005-10-06 Buchheit Paul T Displaying conversation views in a conversation-based email system
US20050234850A1 (en) * 2004-03-31 2005-10-20 Buchheit Paul T Displaying conversations in a conversation-based email sysem
US20060036696A1 (en) * 2004-08-13 2006-02-16 Maresh Mark E Managing email communications using email tagging
US7007226B1 (en) * 1998-09-15 2006-02-28 Microsoft Corporation High density visualizations for threaded information
US20060265394A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265396A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265395A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20080005097A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Updating adaptive, deferred, incremental indexes
US20080005092A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Creating adaptive, deferred, incremental indexes
US20080098312A1 (en) * 2004-03-31 2008-04-24 Bay-Wei Chang Method, System, and Graphical User Interface for Dynamically Updating Transmission Characteristics in a Web Mail Reply
US20080098125A1 (en) * 2000-11-22 2008-04-24 Wang Baldonado Michelle Q System and method for managing digests comprising electronic messages
US20090019021A1 (en) * 2007-07-12 2009-01-15 Davies Stephen A Method and apparatus for creating an index of network data for a set of messages
US20090067592A1 (en) * 2004-06-30 2009-03-12 Morris Robert P Method And System For Associating Related Messages Of Different Types
US20090106435A1 (en) * 2000-10-05 2009-04-23 International Business Machines Corporation Data transmission and reception system with accurate time information
US20090119173A1 (en) * 2006-02-28 2009-05-07 Buzzlogic, Inc. System and Method For Advertisement Targeting of Conversations in Social Media
US20090234924A1 (en) * 2008-03-14 2009-09-17 Microsoft Corporation Automatic Association of Messages with Conversations
EP2107755A1 (en) * 2008-04-04 2009-10-07 Nokia Corporation Method and apparatus for CPM session management
US20100070485A1 (en) * 2006-02-28 2010-03-18 Parsons Todd A Social Analytics System and Method For Analyzing Conversations in Social Media
US7840639B1 (en) 1999-09-21 2010-11-23 G&H Nevada-Tek Method and article of manufacture for an automatically executed application program associated with an electronic message
US7979501B1 (en) 2004-08-06 2011-07-12 Google Inc. Enhanced message display
US8073866B2 (en) 2005-03-17 2011-12-06 Claria Innovations, Llc Method for providing content to an internet user based on the user's demonstrated content preferences
US8078602B2 (en) 2004-12-17 2011-12-13 Claria Innovations, Llc Search engine for a computer network
US8086697B2 (en) 2005-06-28 2011-12-27 Claria Innovations, Llc Techniques for displaying impressions in documents delivered over a computer network
US8170912B2 (en) 2003-11-25 2012-05-01 Carhamm Ltd., Llc Database structure and front end
US8190513B2 (en) 1996-06-05 2012-05-29 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US20120197901A1 (en) * 2008-04-25 2012-08-02 Wilson Kelce S Public Electronic Document Dating List
US8255413B2 (en) 2004-08-19 2012-08-28 Carhamm Ltd., Llc Method and apparatus for responding to request for information-personalization
US8316003B2 (en) 2002-11-05 2012-11-20 Carhamm Ltd., Llc Updating content of presentation vehicle in a computer network
US8554852B2 (en) 2005-12-05 2013-10-08 Google Inc. System and method for targeting advertisements or other information using user geographical information
US8583654B2 (en) 2011-07-27 2013-11-12 Google Inc. Indexing quoted text in messages in conversations to support advanced conversation-based searching
US8595261B1 (en) 1999-09-21 2013-11-26 Michael L. Gough Method and apparatus for the production, delivery, and receipt of audiovisual e-mail
US8601004B1 (en) 2005-12-06 2013-12-03 Google Inc. System and method for targeting information items based on popularities of the information items
US8620952B2 (en) 2007-01-03 2013-12-31 Carhamm Ltd., Llc System for database reporting
US8626851B2 (en) 2004-03-31 2014-01-07 Google Inc. Email conversation management system
US8630942B2 (en) 1996-06-05 2014-01-14 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US8645941B2 (en) 2005-03-07 2014-02-04 Carhamm Ltd., Llc Method for attributing and allocating revenue related to embedded software
US8689238B2 (en) 2000-05-18 2014-04-01 Carhamm Ltd., Llc Techniques for displaying impressions in documents delivered over a computer network
US9002725B1 (en) 2005-04-20 2015-04-07 Google Inc. System and method for targeting information based on message content
US9092535B1 (en) 1999-09-21 2015-07-28 Google Inc. E-mail embedded textual hyperlink object
US20150264004A1 (en) * 2002-09-18 2015-09-17 Justin Khoo System and method for managing emails
US9495446B2 (en) 2004-12-20 2016-11-15 Gula Consulting Limited Liability Company Method and device for publishing cross-network user behavioral data
US9754131B2 (en) 2008-03-22 2017-09-05 Kelce S Wilson Page substitution verification preparation
US20170352050A1 (en) * 2016-06-07 2017-12-07 David Nixon Meeting management system and process
US11444776B2 (en) * 2019-05-01 2022-09-13 Kelce S. Wilson Blockchain with daisy chained records, document corral, quarantine, message timestamping, and self-addressing
US11863678B2 (en) 2020-08-26 2024-01-02 Tenet 3, LLC Rendering blockchain operations resistant to advanced persistent threats (APTs)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218699A (en) * 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
US5247676A (en) * 1989-06-29 1993-09-21 Digital Equipment Corporation RPC based computer system using transparent callback and associated method
US5283856A (en) * 1991-10-04 1994-02-01 Beyond, Inc. Event-driven rule-based messaging system
US5333266A (en) * 1992-03-27 1994-07-26 International Business Machines Corporation Method and apparatus for message handling in computer systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247676A (en) * 1989-06-29 1993-09-21 Digital Equipment Corporation RPC based computer system using transparent callback and associated method
US5218699A (en) * 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
US5283856A (en) * 1991-10-04 1994-02-01 Beyond, Inc. Event-driven rule-based messaging system
US5333266A (en) * 1992-03-27 1994-07-26 International Business Machines Corporation Method and apparatus for message handling in computer systems

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Frenkel, Gary, "cc:Mail View Keeps an Eye on Your Messaging System", Network Computing, Jun. 1, 1995, CMP Publications, Inc., 1995.
Frenkel, Gary, cc:Mail View Keeps an Eye on Your Messaging System , Network Computing, Jun. 1, 1995, CMP Publications, Inc., 1995. *
Kramer, Matt, "Baranof's MailCheck 2.6 Delivers Improved Tools", PC Week, Sep. 11, 1995, Ziff-Davis Publishing Company 1995.
Kramer, Matt, Baranof s MailCheck 2.6 Delivers Improved Tools , PC Week, Sep. 11, 1995, Ziff Davis Publishing Company 1995. *
Shirley, John and Rosenberry, Ward, "Microsoft RPC Programming Guide", O'Reilly & Associates, 1995.
Shirley, John and Rosenberry, Ward, Microsoft RPC Programming Guide , O Reilly & Associates, 1995. *

Cited By (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8630942B2 (en) 1996-06-05 2014-01-14 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US8190513B2 (en) 1996-06-05 2012-05-29 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US6330589B1 (en) * 1998-05-26 2001-12-11 Microsoft Corporation System and method for using a client database to manage conversation threads generated from email or news messages
US7600184B2 (en) * 1998-09-15 2009-10-06 Microsoft Corporation High density visualizations for threaded information
US20060117273A1 (en) * 1998-09-15 2006-06-01 Microsoft Corporation High Density Visualizations For Threaded Information
US7007226B1 (en) * 1998-09-15 2006-02-28 Microsoft Corporation High density visualizations for threaded information
US20050132050A1 (en) * 1998-11-10 2005-06-16 Pennell Mark E. Web based email control center
US20050132072A1 (en) * 1998-11-10 2005-06-16 Pennell Mark E. Web based email control center
US20050125546A1 (en) * 1998-11-10 2005-06-09 Pennell Mark E. Web based email control center
US6874023B1 (en) * 1998-11-10 2005-03-29 Claria Corporation Web based email control center for monitoring and providing a sumary of the detected event information organized according to relationships between the user and network sites
WO2000043898A1 (en) * 1999-01-20 2000-07-27 Econvene, Inc. System and method to facilitate meetings of distributed individuals
US6687740B1 (en) 1999-09-21 2004-02-03 Neostar, Inc. System, method and article of manufacture for preventing the proliferation of unwanted electronic messages
US6704771B1 (en) 1999-09-21 2004-03-09 Neostar, Inc. Electronic message payload for interfacing with text contained in the message
US9092535B1 (en) 1999-09-21 2015-07-28 Google Inc. E-mail embedded textual hyperlink object
US7840639B1 (en) 1999-09-21 2010-11-23 G&H Nevada-Tek Method and article of manufacture for an automatically executed application program associated with an electronic message
US9473441B2 (en) 1999-09-21 2016-10-18 Google Inc. E-mail with discretionary functionality
US8595261B1 (en) 1999-09-21 2013-11-26 Michael L. Gough Method and apparatus for the production, delivery, and receipt of audiovisual e-mail
WO2001061561A3 (en) * 2000-02-14 2004-02-26 Overx Inc Automated system for image archiving
WO2001061561A2 (en) * 2000-02-14 2001-08-23 Overx, Inc. Automated system for image archiving
US8689238B2 (en) 2000-05-18 2014-04-01 Carhamm Ltd., Llc Techniques for displaying impressions in documents delivered over a computer network
US6950880B1 (en) * 2000-08-31 2005-09-27 Ncr Corporation System and method for standardizing component characteristic data submitted by a seller for use by a buyer
US9667444B2 (en) * 2000-10-05 2017-05-30 International Business Machines Corporation Data transmission and reception system with accurate time information
US20090106435A1 (en) * 2000-10-05 2009-04-23 International Business Machines Corporation Data transmission and reception system with accurate time information
US8539030B2 (en) * 2000-11-22 2013-09-17 Xerox Corporation System and method for managing digests comprising electronic messages
US20080098125A1 (en) * 2000-11-22 2008-04-24 Wang Baldonado Michelle Q System and method for managing digests comprising electronic messages
US20020122543A1 (en) * 2001-02-12 2002-09-05 Rowen Chris E. System and method of indexing unique electronic mail messages and uses for the same
WO2002065316A1 (en) * 2001-02-12 2002-08-22 Legato Systems, Inc. System and method of indexing unique electronic mail messages and uses for the same
US20030069892A1 (en) * 2001-10-10 2003-04-10 International Business Machines Corporation Relational view of electronic objects
US7272800B2 (en) * 2002-02-05 2007-09-18 Rohde & Schwarz Gmbh & Co. Kd Message analysis device and method for displaying messages
US20050132053A1 (en) * 2002-02-05 2005-06-16 Rhode & Schwartz Gmbh & Co. Kg Message analysis device and message for displaying messages
US20150264004A1 (en) * 2002-09-18 2015-09-17 Justin Khoo System and method for managing emails
US9916598B2 (en) * 2002-09-18 2018-03-13 Justin Khoo System and method for managing emails
US8316003B2 (en) 2002-11-05 2012-11-20 Carhamm Ltd., Llc Updating content of presentation vehicle in a computer network
US8170912B2 (en) 2003-11-25 2012-05-01 Carhamm Ltd., Llc Database structure and front end
US9063990B2 (en) 2004-03-31 2015-06-23 Google Inc. Providing snippets relevant to a search query in a conversation-based email system
US8150924B2 (en) 2004-03-31 2012-04-03 Google Inc. Associating email messages with conversations
US10757055B2 (en) 2004-03-31 2020-08-25 Google Llc Email conversation management system
US10706060B2 (en) 2004-03-31 2020-07-07 Google Llc Systems and methods for re-ranking displayed conversations
US10284506B2 (en) 2004-03-31 2019-05-07 Google Llc Displaying conversations in a conversation-based email system
US20050223066A1 (en) * 2004-03-31 2005-10-06 Buchheit Paul T Displaying conversation views in a conversation-based email system
US7818378B2 (en) * 2004-03-31 2010-10-19 Google Inc. Displaying conversation views in a conversation-based email system
US20100281397A1 (en) * 2004-03-31 2010-11-04 Buchheit Paul T Displaying Conversation Views in a Conversation-Based Email System
US9819624B2 (en) 2004-03-31 2017-11-14 Google Inc. Displaying conversations in a conversation-based email system
US9794207B2 (en) 2004-03-31 2017-10-17 Google Inc. Email conversation management system
US7912904B2 (en) 2004-03-31 2011-03-22 Google Inc. Email system with conversation-centric user interface
US9734216B2 (en) 2004-03-31 2017-08-15 Google Inc. Systems and methods for re-ranking displayed conversations
US20050234850A1 (en) * 2004-03-31 2005-10-20 Buchheit Paul T Displaying conversations in a conversation-based email sysem
US8010599B2 (en) 2004-03-31 2011-08-30 Google Inc. Method, system, and graphical user interface for dynamically updating transmission characteristics in a web mail reply
US9602456B2 (en) 2004-03-31 2017-03-21 Google Inc. Systems and methods for applying user actions to conversation messages
US20050262203A1 (en) * 2004-03-31 2005-11-24 Paul Buchheit Email system with conversation-centric user interface
US9418105B2 (en) 2004-03-31 2016-08-16 Google Inc. Email conversation management system
US8601062B2 (en) 2004-03-31 2013-12-03 Google Inc. Providing snippets relevant to a search query in a conversation-based email system
US9395865B2 (en) 2004-03-31 2016-07-19 Google Inc. Systems, methods, and graphical user interfaces for concurrent display of reply message and multiple response options
US9124543B2 (en) 2004-03-31 2015-09-01 Google Inc. Compacted mode for displaying messages in a conversation
US9071566B2 (en) 2004-03-31 2015-06-30 Google Inc. Retrieving conversations that match a search query
US8583747B2 (en) 2004-03-31 2013-11-12 Google Inc. Labeling messages of conversations and snoozing labeled conversations in a conversation-based email system
US9063989B2 (en) 2004-03-31 2015-06-23 Google Inc. Retrieving and snoozing categorized conversations in a conversation-based email system
US9015257B2 (en) 2004-03-31 2015-04-21 Google Inc. Labeling messages with conversation labels and message labels
US9015264B2 (en) 2004-03-31 2015-04-21 Google Inc. Primary and secondary recipient indicators for conversations
US8700717B2 (en) 2004-03-31 2014-04-15 Google Inc. Email conversation management system
US8346859B2 (en) 2004-03-31 2013-01-01 Google Inc. Method, system, and graphical user interface for dynamically updating transmission characteristics in a web mail reply
US8533274B2 (en) 2004-03-31 2013-09-10 Google Inc. Retrieving and snoozing categorized conversations in a conversation-based email system
US20080098312A1 (en) * 2004-03-31 2008-04-24 Bay-Wei Chang Method, System, and Graphical User Interface for Dynamically Updating Transmission Characteristics in a Web Mail Reply
US8626851B2 (en) 2004-03-31 2014-01-07 Google Inc. Email conversation management system
US8560615B2 (en) * 2004-03-31 2013-10-15 Google Inc. Displaying conversation views in a conversation-based email system
US8621022B2 (en) 2004-03-31 2013-12-31 Google, Inc. Primary and secondary recipient indicators for conversations
US20090067592A1 (en) * 2004-06-30 2009-03-12 Morris Robert P Method And System For Associating Related Messages Of Different Types
US8782156B2 (en) 2004-08-06 2014-07-15 Google Inc. Enhanced message display
US7979501B1 (en) 2004-08-06 2011-07-12 Google Inc. Enhanced message display
US20060036696A1 (en) * 2004-08-13 2006-02-16 Maresh Mark E Managing email communications using email tagging
US8255413B2 (en) 2004-08-19 2012-08-28 Carhamm Ltd., Llc Method and apparatus for responding to request for information-personalization
US8078602B2 (en) 2004-12-17 2011-12-13 Claria Innovations, Llc Search engine for a computer network
US9495446B2 (en) 2004-12-20 2016-11-15 Gula Consulting Limited Liability Company Method and device for publishing cross-network user behavioral data
US8645941B2 (en) 2005-03-07 2014-02-04 Carhamm Ltd., Llc Method for attributing and allocating revenue related to embedded software
US8073866B2 (en) 2005-03-17 2011-12-06 Claria Innovations, Llc Method for providing content to an internet user based on the user's demonstrated content preferences
US9002725B1 (en) 2005-04-20 2015-04-07 Google Inc. System and method for targeting information based on message content
US20060265395A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265394A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265396A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US8086697B2 (en) 2005-06-28 2011-12-27 Claria Innovations, Llc Techniques for displaying impressions in documents delivered over a computer network
US8554852B2 (en) 2005-12-05 2013-10-08 Google Inc. System and method for targeting advertisements or other information using user geographical information
US8601004B1 (en) 2005-12-06 2013-12-03 Google Inc. System and method for targeting information items based on popularities of the information items
US8682723B2 (en) * 2006-02-28 2014-03-25 Twelvefold Media Inc. Social analytics system and method for analyzing conversations in social media
US20100070485A1 (en) * 2006-02-28 2010-03-18 Parsons Todd A Social Analytics System and Method For Analyzing Conversations in Social Media
US20090119173A1 (en) * 2006-02-28 2009-05-07 Buzzlogic, Inc. System and Method For Advertisement Targeting of Conversations in Social Media
US7734618B2 (en) 2006-06-30 2010-06-08 Microsoft Corporation Creating adaptive, deferred, incremental indexes
US7917499B2 (en) 2006-06-30 2011-03-29 Microsoft Corporation Updating adaptive, deferred, incremental indexes
US20080005092A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Creating adaptive, deferred, incremental indexes
US20080005097A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Updating adaptive, deferred, incremental indexes
US8620952B2 (en) 2007-01-03 2013-12-31 Carhamm Ltd., Llc System for database reporting
US8239382B2 (en) * 2007-07-12 2012-08-07 International Business Machines Corporation Method and apparatus for creating an index of network data for a set of messages
US20090019021A1 (en) * 2007-07-12 2009-01-15 Davies Stephen A Method and apparatus for creating an index of network data for a set of messages
US20090234924A1 (en) * 2008-03-14 2009-09-17 Microsoft Corporation Automatic Association of Messages with Conversations
US9754131B2 (en) 2008-03-22 2017-09-05 Kelce S Wilson Page substitution verification preparation
US11550959B2 (en) 2008-03-22 2023-01-10 Kelce S Wilson Reproducing hash values from printed documents to validate with a blockchain
US10824762B2 (en) 2008-03-22 2020-11-03 Kelce S Wilson Registering published documents in a blockchain
US10255460B2 (en) 2008-03-22 2019-04-09 Kelce S Wilson Authenticating printed paper documents and websites against a blockchain record
CN101981896A (en) * 2008-04-04 2011-02-23 诺基亚公司 Method and apparatus for CPM session management
EP2107755A1 (en) * 2008-04-04 2009-10-07 Nokia Corporation Method and apparatus for CPM session management
WO2009122279A2 (en) * 2008-04-04 2009-10-08 Nokia Corporation Exchange of messages and sessions
US9204264B2 (en) 2008-04-04 2015-12-01 Nokia Corporation Exchange of messages and sessions
KR101150594B1 (en) * 2008-04-04 2012-05-30 노키아 코포레이션 Method and apparatus for cpm session management
WO2009122279A3 (en) * 2008-04-04 2009-12-03 Nokia Corporation Method and apparatus for cpm session management
US20100011069A1 (en) * 2008-04-04 2010-01-14 Nokia Corporation Exchange of messages and sessions
US9053142B2 (en) * 2008-04-25 2015-06-09 Kelce S. Wilson Public electronic document dating list
US8903839B2 (en) 2008-04-25 2014-12-02 Kelce S Wilson Verifying age and integrity of website pages
US20120197901A1 (en) * 2008-04-25 2012-08-02 Wilson Kelce S Public Electronic Document Dating List
US9330261B2 (en) 2008-04-25 2016-05-03 Kelce S Wilson Proving age and integrity of website pages
US10313360B2 (en) 2008-04-25 2019-06-04 Kelce S. Wilson PEDDaL blockchaining for document integrity verification preparation
US8972409B2 (en) 2011-07-27 2015-03-03 Google Inc. Enabling search for conversations with two messages each having a query team
US9037601B2 (en) 2011-07-27 2015-05-19 Google Inc. Conversation system and method for performing both conversation-based queries and message-based queries
US9009142B2 (en) 2011-07-27 2015-04-14 Google Inc. Index entries configured to support both conversation and message based searching
US9262455B2 (en) 2011-07-27 2016-02-16 Google Inc. Indexing quoted text in messages in conversations to support advanced conversation-based searching
US8583654B2 (en) 2011-07-27 2013-11-12 Google Inc. Indexing quoted text in messages in conversations to support advanced conversation-based searching
US20170352050A1 (en) * 2016-06-07 2017-12-07 David Nixon Meeting management system and process
US11444776B2 (en) * 2019-05-01 2022-09-13 Kelce S. Wilson Blockchain with daisy chained records, document corral, quarantine, message timestamping, and self-addressing
US11863678B2 (en) 2020-08-26 2024-01-02 Tenet 3, LLC Rendering blockchain operations resistant to advanced persistent threats (APTs)
US11863679B2 (en) 2020-08-26 2024-01-02 Tenet 3, LLC Blockchain records with third party digital signatures as a trust element for high-risk digital content
US11863680B2 (en) 2020-08-26 2024-01-02 Tenet 3 Llc Linking blockchain records to identify certification, track pedigree and identify obsolete digital content

Similar Documents

Publication Publication Date Title
US5832502A (en) Conversation index builder
US9710569B2 (en) Service desk data transfer interface
US7277878B2 (en) Variable length file header apparatus and system
US8225219B2 (en) Identifying unique content in electronic mail messages
US5758354A (en) Application independent e-mail synchronization
US6457013B1 (en) Data formating property modifiers
US5835601A (en) File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US4730252A (en) Document composition from parts inventory
EP0424407A1 (en) Intermediate spreadsheet structure.
EP0380240A3 (en) Coded signature indexed databases
US6892220B2 (en) Apparatus and method for creating a link and checking link validity for objects by storing a timestamp in a validity check field for linking to a multimedia document
EP0621557A1 (en) Font definition conversion method
CN110991157A (en) Engineering quality evaluation system design method based on electronic file credible technology
US20150052495A1 (en) Determining software complexity
JP3865694B2 (en) Path encoding and decoding method in tree structure of structured document
EP1296273A2 (en) Apparatus and automated method of contract drafting
CN115757280A (en) Cloud document management system based on distributed document storage
CA2317309A1 (en) History-based document differencing showing nature of differences
US20050237268A1 (en) Mapping data sets to a target structure
JP2006523338A (en) System and method for accessing computer files using local links and printed symbols
US7164991B1 (en) Specific identifiers of amino-acid base sequences
US6418482B1 (en) Reference attributes within an object-oriented system
KR20030052582A (en) Method for recovering electronic mail message and computer readable medium storing thereof
US20050251498A1 (en) Method, computer program and device for executing actions using data sets
US20050138635A1 (en) Updating a deferred copy of a data message

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DURHAM, PETER E.;BENSON, MAX L.;APACIBLE, MIU FUNG ANG;REEL/FRAME:008091/0724;SIGNING DATES FROM 19960627 TO 19960628

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0001

Effective date: 20141014