`Clark et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,725,228 B1
`Apr. 20, 2004
`
`US006725228B1
`
`SYSTEM FOR MANAGING AND
`ORGANIZING STORED ELECTRONIC
`MESSAGES
`
`Inventors: David Morley Clark, 920 Innes Street,
`Nelson, British Columbia V1L 5T2
`(CA); Thomas Wilson Gibson, 230
`High Street, Nelson, British Columbia
`V1L 3Z9 (CA); David Mitchell
`Bracewell, 708 Third Street, Nelson,
`British Columbia V1L 2R2 (CA); Jeff
`Toy Tsao Kwan, 12 Arundel Avenue,
`Toronto, Ontario M4K 3A4 (CA)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 212 days.
`
`Notice:
`
`6,167,402 A * 12/2000 Yeager ........................ 707/10
`6,182,071 B1 * 1/2001 Fushimi ......................... 707/7
`6,226,630 B1 * 5/2001 Billmers ........................ 707/3
`6,324,569 B1 * 11/2001 Ogilvie et al. .............. 707/500
`6,396,513 B1 * 5/2002 Helfman et al. ............ 709/206
`6,424,995 B1 * 7/2002 Shuman ...................... 709/206
`6,449,615 B1 * 9/2002 Liu et al. ...................... 707/10
`6,466,941 B1 * 10/2002 Rowe et al. ................ 707/102
`6,507,846 B1 * 1/2003 Consens ..................... 707/100
`FOREIGN PATENT DOCUMENTS
`
`
`
`EP
`
`WO99/04344
`
`1/1999
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`OTHER PUBLICATIONS
`Microsoft Internet Explorer 1995–2001.*
`Dvorak, John C., Scarier Than Spam, Jan. 4, 1999, pp. 1–2.
`De La Cruz et al., Inside MAPI, Ö1996, pp. 528–541 (Table
`of Contents also included).
`MSDN Library–Apr. 1999, Messaging API (MAPI), Legal
`Appl. No.: 09/704,199
`Information, Developing a Message Store Provider.
`Filed:
`Oct. 31, 2000
`* cited by examiner
`Int. Cl." … G06F 7/00
`Primary Examiner—Kim Vu
`U.S. Cl. ............................................ 707/102; 707/7
`Assistant Examiner—Momplaisir Hamilton
`Field of Search ................................ 707/7, 200, 2,
`(74) Attorney, Agent, or Firm—Oyen, Wiggs, Green &
`707/102
`Mutala
`ABSTRACT
`(57)
`A computer-based system catalogs and retrieves electronic
`messages saved in a message store. The system automati
`cally organizes each saved message into multiple folders
`based on the contents and attributes of the message, and
`implements improved methods for manually organizing
`messages. Unlike prior art systems, where a message exists
`in only one folder, the system uses lightweight message
`shortcuts to display the message in multiple folders simul
`taneously. The system preferably permits messages to be
`organized by: 1) basic message and attachment properties,
`e.g. date, status, attachment type; 2) extended message
`properties that the user can specify, e.g. keywords; and 3)
`correspondent or bulk mail sender/recipient, with automatic
`separation of bulk mail from correspondence. Performance
`and usability are improved by performing reads incremen
`tally and by providing multiple sorting keys.
`
`(54)
`
`(76)
`
`(*)
`
`(21)
`(22)
`(51)
`(52)
`(58)
`
`(56)
`
`4,611,280 A * 9/1986 Linderman .................. 712/300
`4,809,158 A * 2/1989 McCauley ........
`... 707/7
`5,274,805 A * 12/1993 Ferguson et al. .............. 707/7
`5,377,354 A 12/1994 Scannell et al.
`5,440,734. A * 8/1995 Wagar ........................... 707/7
`5,544,360 A 8/1996 Lewak et al.
`5,548,789 A 8/1996 Nakamura
`5,615,367 A * 3/1997 Bennett et al. ............. 707/102
`5,694,616 A * 12/1997 Johnson et al. ...
`... 709/207
`5,813,009 A * 9/1998 Johnson et al. ............. 707/100
`5,899,995 A
`5/1999 Millier et al.
`5,948,058 A * 9/1999 Kudoh et al. ............ 707/104.1
`6,009,442 A 12/1999 Chen et al.
`6,029,164 A 2/2000 Birrell et al.
`6,057,841 A 5/2000 Thurlow et al.
`6,073,131. A * 6/2000 Roberti .......................... 707/7
`6,073,142 A * 6/2000 Geiger et al. ..
`... 707/500
`6,088,696 A * 7/2000 Moon et al. ...
`... 707/10
`6,154,740 A * 11/2000 Shah ............................. 707/7
`
`34 Claims, 33 Drawing Sheets
`
`Date
`
`–
`
`Emanoranger TT
`File
`Edit
`view T Tools Help
`I
`Hot
`i
`$tatus || To | Name
`
`61 – J
`
`- - - - -
`
`\ |subject
`V
`
`W
`
`- - - - -
`-
`
`Active Mail (14)
`To Do (4)
`Unread (18}
`61A TN_ Today (12)
`Yesterday (6)
`This Week
`Elizabeth Green 2 ||.
`Bob Baxter (1)
`FCrester Research
`PDA -saved search
`U] keyword
`x45 study «keyword: —
`
`From
`
`2C *Yºu Tsºng Icºnden?e ºwn
`13 msgs of 100
`
`Keyword TDate? attachmen search User
`
`Facebook's Exhibit No. 1008/1108
`Page 1
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 1 of 33
`
`US 6,725,228 B1
`
`
`
`FIG. 1A
`
`Facebook's Exhibit No. 1008/1108
`Page 2
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 2 of 33
`
`US 6,725,228 B1
`
`
`
`FIG. 1B
`
`Facebook's Exhibit No. 1008/1108
`Page 3
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 3 of 33
`
`US 6,725,228 B1
`
`
`
`User Interface Device
`
`Message Client
`
`Transport
`Server
`
`Events
`
`Requests
`
`Message Store
`Server(s)
`
`Incoming Events
`
`Catalog Server
`
`Outgoing Requests
`
`29
`
`28
`
`Catalog
`database
`
`Message
`Store(s)
`
`FIG. 2
`
`Facebook's Exhibit No. 1008/1108
`Page 4
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 4 of 33
`
`US 6,725,228 B1
`
`
`
`Transport Header
`ReceiveLate: Today 10:10:05
`Direction: Received
`
`From: Tom GibSon
`To: David Clark
`CC: David Bracewell
`
`Subject: White paper
`Body:
`Here is the white paper
`for your review.
`
`Attachment: White Paper.doc
`p
`
`tatus & Organizationa
`Information
`Status: Isunread
`ISActive
`Keywords: Marketing
`White Paper
`
`FIG. 3
`
`Date
`|--- Today
`!---This Week
`|--- This Month
`
`s
`
`Status
`|--- Received
`DS
`Correspondent
`|---Tom Gibson
`
`Attachment
`|--- All Attachments
`|--- DOC
`
`L
`
`Status
`|--- Unread
`|--- Active Mail
`
`Keywords
`|--- Marketing
`|--- White Paper
`
`Facebook's Exhibit No. 1008/1108
`Page 5
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 5 of 33
`
`US 6,725,228 B1
`
`User
`Interface
`Device
`
`Message
`Store
`Server(s)
`
`Catalog
`database
`
`CLIENT COMPUTER
`
`40A
`
`FIG. 4A
`
`
`
`
`
`User
`Interface º
`Device
`
`CLIENT COMPUTER
`
`40B
`
`FIG. 4B
`
`SC -
`Message Se:
`Message
`Store
`Server(s)
`Store(s)
`
`SERVER COMPUTER
`
`User
`Interface
`Device
`
`Message
`Store
`Server(s)
`
`Se:
`Message
`Store(s)
`
`CLIENT COMPUTER
`
`SERVER COMPUTER
`
`Facebook's Exhibit No. 1008/1108
`Page 6
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 6 of 33
`
`US 6,725,228 B1
`
`
`
`StoreLink
`StoreLinkId
`StoreId (F
`
`Shortcut
`MessageId
`2. Attachid
`S. Folder Id
`
`VTV
`
`Message Store
`
`Message ? 54
`StoreMessageId
`<message data-
`
`Attachment
`< StoreAttachid
`<attachment data
`
`/- 55
`
`FIG. 5A
`
`Facebook's Exhibit No. 1008/1108
`Page 7
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 7 of 33
`
`US 6,725,228 B1
`
`50
`
`
`
`Catalog / Message Store
`
`Address
`Addressld
`
`B-
`
`Shortcut
`MessageId
`AttachId
`S. Folder Id
`
`MessageSummary
`MessageId
`
`52'
`
`AttachSummary
`MessageId
`Attachid
`
`MessageId
`
`Attachment
`
`/–ss
`
`<attachment data
`
`FIG. 5B
`
`Facebook's Exhibit No. 1008/1108
`Page 8
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 8 of 33
`
`US 6,725,228 B1
`
`60
`
`68
`
`64
`
`65
`
`66
`
`
`
`
`
`
`
`
`
`
`
`
`
`61A
`
`Active Mail (14)
`To Do (4)
`Unread (18)
`Today (12)
`Yesterday (6)
`This Week
`Elizabeth Green (2)
`Bob Baxter (1)
`Forrester Research
`PDA “saved search
`UI &keyword
`X45 Study «keyword
`
`Hot status|correspondent Bulkmail Keyword |Date Attachmen search User
`Emº TTT
`
`
`
`62
`
`FIG. 6
`
`Facebook's Exhibit No. 1008/1108
`Page 9
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 9 of 33
`
`US 6,725,228 B1
`
`76
`
`THIRD LAYER - Correspondence and Bulk Mail Organization
`Separate Correspondence from Bulk Mail
`Automatic organization of Correspondence
`Bulk Mail organization by sender or recipient
`Manage Correspondent and Bulk Mail folders
`
`74
`
`
`
`SECOND LAYER - Applications of Lightweight Message Shortcuts
`Automatic organization by Status
`Automatic organization by Date
`Automatic organization by Attachment
`Automatic organization by user assigned Keyword
`Improved manual organization in user created folders
`Improved filtering mechanisms
`Improved handling of search results
`
`BASE LAYER - Base Services
`Catalog database
`Unified view of multiple Message Stores
`Catalog Server Requests and Events
`Lightweight message shortcuts
`Timed Shortcuts
`User Created Shortcuts
`User excluded Shortcuts
`Incremental read of Folder contents
`
`FIG. 7
`
`Facebook's Exhibit No. 1008/1108
`Page 10
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 10 of 33
`
`US 6,725,228 B1
`
`Folder
`Folder Id
`
`56
`
`
`
`
`
`
`
`
`
`
`
`57
`
`
`
`
`
`... ." ||. Tºisºn | Alternatee?.
`TriggerAction
`FolderSortDirection
`+ FOlder Name
`TriggerDateTime
`ShortcutCount
`(uppercase)
`AlternateKey3
`UnreadCount
`:
`= ISHot
`CorrespShortcutcount
`ISUSerShortcut
`UnreadCorrespOount
`SUSe
`
`Shortcut
`MessageId
`AlternateKey1
`Attachid
`ParentFolder Id
`AlternateKey 1
`= Folder Id
`= ParentFolder Id . Folder Id
`older Iype
`AlternateKey2
`ISHot
`-
`2T ::m + SortKey
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`= TriggerDateTime
`
`AttachSummary 53
`MessageId
`Attachld
`AttachType
`AttachMame
`AttachSize
`
`
`
`MessageSummary
`MessageId
`FolderExcludelist
`Isunread
`IsCorresp
`MessageBate?ime
`DisplayNames
`Subject
`
`
`
`
`
`
`
`
`
`FIG. 8
`
`Facebook's Exhibit No. 1008/1108
`Page 11
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 11 of 33
`
`US 6,725,228 B1
`
`Message Store Server
`
`Catalog Server
`
`Message Client
`
`Incoming Events
`
`e—MeSSage/Added
`e—MessageOhanged
`e—MessageLeleted
`
`
`
`Outgoing Requests
`
`<!—ReadMessage
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Incoming Requests
`
`Addfolder—e
`ChangeFolder—e
`Deletefolder—e
`ReadPolder—e
`ReadPolderSubtree—e
`ReadHotFolders—e
`ReadfolderContents—e
`ChangeFolderSortkey—e
`AddShortcut—e
`DeleteShortcut—e
`DeleteFolderShortcuts—e
`ReadMessageSummary—e
`ReadAttachSummary—e
`
`Outgoing Events
`
`FolderAdded—P.
`FolderChanged—º
`FolderHotChanged—º
`FolderDeleted—P
`Shortcutadded—º
`Shortcut?)eleted—P
`ShortcutSortKeyChanged—º
`SummaryChanged—º
`
`FIG. 9
`
`Facebook's Exhibit No. 1008/1108
`Page 12
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 12 of 33
`
`US 6,725,228 B1
`
`Memory structures
`
`100 -\
`Shortcutarray
`
`
`
`
`
`Shortcutentry
`Shortcutaction
`Excluded
`OldShortcut
`Shortcut
`[AttachSummary 1
`
`FIG. 10A
`
`
`
`Input Parameters
`= MessageSummary
`
`Read all Shortcuts for Message. Save each Shortcut as an OldShortcut
`object in Shortcutarray with Shortcutaction of sabelete.
`
`Execute Second Layer 2 Automatic Organization Rules
`(which use "AddChangeShortcut" to create Shortcuts)
`
`Execute Second Layer Filter Rules
`(which use "AddChangeShortcut" to create Shortcuts)
`
`Execute Third Layer Correspondent and Bulk Mail Rules
`(which use "AddChangeShortcut" to create Shortcuts)
`
`For each element in FolderExcludelist, do "ValidatefolderListElement".
`If valid element, set Excluded flag in matching Shortcutentry to True.
`
`Process each Shortcut-ntry as shown in FIG. 11A.
`
`FIG. 10B
`
`Facebook's Exhibit No. 1008/1108
`Page 13
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 13 of 33
`
`US 6,725,228 B1
`
`AddChangeShortcut
`
`
`
`Input Parameters
`= MessageId
`+ AttachId
`+ Folder Id
`+ TriggerAction
`+ TriggerDateTime
`+ ISUsershortcut
`
`Add Shortcutentry to
`Shortcutarray. Set
`Shortcutaction to saAdd.
`
`Search Shortcutarray for
`matching Shortcut or
`OldShortcut (using
`MessageId + Attachid +
`Folder[d as search key)
`
`FIG. 10C
`
`Validate FolderlistElemen
`
`
`
`Read Folder from Catalog
`database
`
`If FolderDateTime in element
`doesn't match value in
`Folder, delete element from
`FolderExcludelist
`
`FIG. 10D
`
`Facebook's Exhibit No. 1008/1108
`Page 14
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 14 of 33
`
`US 6,725,228 B1
`
`
`
`Input Parameters
`= ShortcutEntry
`111
`
`Read Folder from Catalog
`database
`
`Shortcut
`Action?
`
`Sa[Delete
`
`ISUSer
`Shortcut?
`
`Yes
`
`DeleteShortcut
`
`With OldShortcut, do
`"DecrementFolderCounts"
`(FIG. 11B)
`Delete Shortcut from
`Catalog database
`Generate Shortcut?)eleted
`Event
`Do"UpdateFolder" (FIG.
`11B)
`
`UpdateShortcut
`
`-
`
`IG.
`
`Do "BuildShortcut" (FIG. 11B)
`If Shortcut is same as OldShortcut, then
`Exit
`With OldShortcut, do
`"DecrementFolderCounts" (FIG. 11B)
`.Adº?hº?ºhditcut"
`§ * do "IncrementFolderCounts"
`11B)
`Update Shortcut in Catalog database
`*:::::cans
`(FIG. 11B) º
`*** Do "Updatefolder" (FIG. 11B)
`Generate Shortcutadded
`Event
`Do "Updatefolder" (FIG.
`
`115
`Set Shortcut?imer as shown in FIG. 13
`
`FIG. 11A
`
`Facebook's Exhibit No. 1008/1108
`Page 15
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 15 of 33
`
`US 6,725,228 B1
`
`BuildShortcut
`Finish building the Shortcut object in ShortcutEntry:
`-- Build SortKey is shown in FIG. 12
`-- Set SortKey and SortColumn (from Folder)
`-- Set Isunread and IsCorresp (from MessageSummary)
`
`IncrementFolderCounts
`•
`Increment Shortcutcount
`•
`If Shortcut. Isunread, increment UnreadCount
`•
`If Shortcut.IsCorresp, increment CorrespShortcutcount
`•
`If Shortcut.IsCorresp AND Isunread, increment UnreadCorrespCount
`
`
`
`Decrement FolderCounts
`Decrement ShortcutCount
`If Shortcut.ISUnread, decrement UnreadCount
`If Shortcut.IsCorresp, decrement CorrespShortcutcount
`If Shortcut.IsCorresp AND ISUnread, decrement UnreadCorrespCount
`
`Updatefolder
`• Update Folder in Catalog database
`•
`Generate FolderChanged Event
`
`FIG. 11B
`
`Facebook's Exhibit No. 1008/1108
`Page 16
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 16 of 33
`
`US 6,725,228 B1
`
`SHORTCUT STRUCTURE
`
`FLAGS ENCODING
`
`Byte
`Offset Length Field
`O
`4
`MessageId
`4
`2
`Attach Id
`6
`4
`FolderId
`10
`6
`Sortkey
`16
`1
`SortColumn
`17
`1
`TriggerAction
`18
`4
`TriggerDateTime
`22
`1
`Flags
`23
`1
`IsCorresp
`
`Bit Length Field
`O
`1
`SortDirection
`1
`1
`Isunread
`2
`1
`ISUSerShortcut
`
`FIELD TYPE
`
`SORT KEY FORMAT
`
`Notes
`
`-
`-
`UnicodeString
`
`--- -
`AnsiString
`
`UCW1
`
`UCW2
`
`UCW3
`
`Unicode Character Weights of
`first 3 characters of string.
`
`C1
`
`C2
`
`C3
`
`C4
`
`C5
`
`C6
`
`Values of first 6 characters of
`string.
`
`DateTime
`
`YY | MM | DD
`
`hh
`
`mm | SS
`
`YY = Year - 1950
`
`Value
`
`YY
`
`MM
`
`DD
`
`hh
`
`YY = Year - 1950
`
`Enumeration OR
`Boolean
`(sdDescending)
`
`Enumeration OR
`Boolean .
`(sdAscending)
`
`Integer32 OR
`Integerlö
`
`Value
`
`255
`
`255
`
`255] 255
`
`º; ... tº . YY = Year-1950
`
`-
`
`-
`
`
`
`--------------- Bits --------------
`31–24 || 23-16
`7–0 ||
`
`Not Used
`
`Bits are numbered with 0 being
`the least significant and 31 the
`most significant.
`
`FIG. 12
`
`Facebook's Exhibit No. 1008/1108
`Page 17
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 17 of 33
`
`US 6,725,228 B1
`
`
`
`Startup
`Processing
`
`Initialize Shortcut?imer
`to inactive state
`
`Read first Shortcut
`from Catalog database
`using Alternatekey2
`
`Shortcut
`Found?
`
`135
`AddChange
`Shortcut
`
`If TriggerDateTime is non-zero and is
`less than Shortcut?imer, reset
`Shortcut?imer to TriggerDateTime
`
`• Read Shortcut from Catalog database
`•
`If TriggerAction is taDeleteShortcut then
`generate an internal DeleteShortcut Request.
`
`FIG. 13
`
`Facebook's Exhibit No. 1008/1108
`Page 18
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 18 of 33
`
`US 6,725,228 B1
`
`
`
`Start
`
`Sort
`Direction?
`
`sdDescending
`
`Request Parameters
`= Folder Id
`+ SortKey
`+ SortDirection º Position at first
`+ RequestCount
`---
`Shortcut in Folder
`position on Shortcut
`•
`+ CorrespOnly
`Alternatekeyl
`using Alternatekey1
`
`sdAScending
`
`143A
`
`Position at last
`Shortcut in Folder
`-
`using AlternateKeyl
`
`Read Next/Prev Shortcut in Folder
`(depending on SortDirection)
`
`145A
`
`Set ISEOF to
`True
`
`Yes
`
`145
`
`Is (ContentGount >=
`RequestCount) AND
`(Current SortKey NOT =
`Previous SortKey)?
`
`Sort Content/Array in
`memory, using values
`from MessageSummary
`and AttachSummary
`
`Build Repl
`Read related MessageSummary from Catalog
`database
`If AttachId is non-zero, read related
`AttachSummary from Catalog database
`Add MessageSummary and AttachSummary (or
`NULL) to Content/Array
`Increment ContentGount
`Set SortKey in Reply from the current Shortcut
`SortKey
`
`Reply Parameters
`= ResultCode
`+ SortKey
`+ ISEOF
`+ ContentCount
`+ Content/Array
`= Array of [ MessageSummary + (AttachSummary OR NULL) |
`
`FIG. 14
`
`Facebook's Exhibit No. 1008/1108
`Page 19
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 19 of 33
`
`US 6,725,228 B1
`
`
`
`Read Folder from Catalog
`
`152
`
`Request Parameters
`= Folder.Id
`+ FolderSortColumn
`+ FolderSortDirection
`
`Position at first Shortcut
`in Folder using
`AlternateKeyl
`
`Read next Shortcut in Folder
`
`
`
`5 15
`
`@-te Folder?
`The underlying data type
`for the FolderSortColumn
`
`No
`
`End of
`
`Enumeration
`OR Boolean
`
`Data Type?
`
`156
`
`157
`
`Need to build SortKey if
`FolderSortColumn
`NOT = SOrtColumn
`OR FolderSortDirection
`NOT = SortDirection
`
`Other
`
`Need to build
`Sortkey if
`FolderSortColumn
`NOT = SOrtColumn
`
`If FolderSortColumn is a column in the MessageSummary, read
`the MessageSummary from the Catalog database
`If FolderSortColumn is a column in the AttachSummary, read the
`AttachSummary from the Catalog database
`Build the SortKey
`Update Shortcut in Catalog database
`
`Set FolderSortColumn
`Set FolderSortDirection
`Update Folder in Catalog database
`
`FIG. 15
`
`Facebook's Exhibit No. 1008/1108
`Page 20
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 20 of 33
`
`US 6,725,228 B1
`
`Contains all tables and fields of Base Layer, plus the following:
`
`AttachSummary
`
`53
`
`
`
`Direction
`SendState
`IsDeleted
`ISActive
`IsKept
`IsTagged
`ISTODO
`KeywordList
`
`FIG. 16
`
`Facebook's Exhibit No. 1008/1108
`Page 21
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 21 of 33
`
`US 6,725,228 B1
`
`ROOt
`|--- Status
`|
`|--- Active Mail
`|--- Deleted
`|--- Drafts
`|--- Kept
`|--- Received
`|--- Sent
`|--- Tagged
`|--- To Do
`|--- Unread
`|--- Waiting Send
`
`--- Date
`|--- Today
`|--- Yesterday
`|--- This Week
`|--- Last Week
`|--- * Automatically created Month folders
`
`--- Attachment
`|--- All Attachments
`|--- * Automatically created AttachmentType folders
`
`--- Keyword
`|--- * Automatically created Keyword folders
`
`--- Search Results
`|--- * Search Results folders
`
`--- User Folders
`|--- * User created folders
`
`FIG. 17
`
`Facebook's Exhibit No. 1008/1108
`Page 22
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 22 of 33
`
`US 6,725,228 B1
`
`Contains all tables and fields of Base Layer and Second Layer, plus the following:
`
`Folder
`
`56
`
`
`
`IsPendingCorresp
`
`57
`
`58
`
`MessageSummary
`
`52 AttachSummary 53
`
`
`
`AddresSList
`
`
`
`Address
`AddressId
`FolderId
`AddressString
`AddressType
`IsPendingCorresp
`
`AlternateKey 1
`= AddressString
`(upperCase)
`AlternateKey2
`= Folder.Id
`
`FIG. 18
`
`Facebook's Exhibit No. 1008/1108
`Page 23
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 23 of 33
`
`US 6,725,228 B1
`
`Contains all Folders in Base Layer and Second Layer, plus the following:
`
`<Root
`|--- Correspondents
`|
`|--- Me
`|
`|--- * Automatically created Correspondent folders
`|
`|--- * User created Correspondent folders
`|
`|--- Bulk Mail
`|
`|--- Unsorted
`|
`|--- * User created Bulk Mail folders
`
`FIG. 19
`
`Facebook's Exhibit No. 1008/1108
`Page 24
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 24 of 33
`
`US 6,725,228 B1
`
`Includes all Requests and Events in Base Layer and Second Layer, plus the following:
`
`24
`Message Store Server
`
`29
`Catalog Server
`
`27
`Message Client
`
`Incoming Requests
`
`Add MyAddress—e
`ReadPolderAddresses—e
`MoveAddress—e
`ProcessAddressOueue—e
`
`FIG. 20
`
`Facebook's Exhibit No. 1008/1108
`Page 25
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 25 of 33
`
`US 6,725,228 B1
`
`217
`AddressArray /T
`—”
`
`
`
`AddressBntry
`d
`Rol
`dressRole
`Addres
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 21A
`
`
`
`StateCounters
`OriginCount
`ToCount
`Shortcutcount
`
`218
`
`º
`Phase 1 Processing
`– — — — — — — Hingement?; (AddressRoe E(arsenderoRaifrom))
`|_ _ _ _
`– — — — — — — — — — — — — — — — — — — — — — — — — — — — — l
`T - - - - Increment IF (AddressRole = ar?o)
`|
`— — — — — — — — — — — — — — — — — — — — — — — — — — — —
`
`-
`
`FIG. 21B
`
`Facebook's Exhibit No. 1008/1108
`Page 26
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 26 of 33
`
`US 6,725,228 B1
`
`Phase 1 Processing
`
`| Set to True
`|
`|
`IF
`(Direction = drSend )
`|
`/ AND (AddressType = atMyAddress )
`|
`/ | AND (AddressRole = arrrom)
`219 / –––––––––––––––––––––––––––– –
`Stateflags _* /
`Set to True
`|
`/
`IF
`(Direction = drPeceive )
`.* 2 * 1 AND (AddressType = atMyAddress )
`… "
`AND (AddressRole = ar?o OR arCC OR arEcc)
`
`|
`|
`|
`–
`
`IsBulkMail
`
`*-
`
`
`
`r— — — — — — — — — — — — — — — — — — — — — — — — — — — — — T
`
`|
`
`? - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
`
`~~< I Set to True
`IsfromknownCorresp k,
`| IF (AddressType = atEulkAddress)
`IsToknownCorresp
`\ `ss | Set to True
`\
`N IF
`(AddressType = atcorrespAddress )
`
`|
`
`|
`
`|- — — — — — — — — — — — — — — — — — — — — — — — — — — —
`\ Set to True
`|
`N IF
`(AddressType = at CorrespAddress )
`AND (AddressRole = (ar?o or arCC or arEcc ))
`
`|
`
`FIG. 21C
`
`Facebook's Exhibit No. 1008/1108
`Page 27
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 27 of 33
`
`US 6,725,228 B1
`
`
`
`Input Parameters
`= MessageSummary
`
`Get next element in
`MessageSummary's Addresslist
`
`225
`
`Yes
`
`To Phase 2
`
`226
`
`Add Address information to
`AddressEntry
`
`Set Stateflags
`
`FIG. 22
`
`Facebook's Exhibit No. 1008/1108
`Page 28
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 28 of 33
`
`US 6,725,228 B1
`
`
`
`From Phase 1
`
`Get next AddressEntry in
`AddressArray
`
`2
`
`End of
`Array?
`
`No
`Apply Corresp/Bulk Mail Rules to
`AddressEntry as shown in FIG. 24
`
`239
`
`Create
`Shortcut?
`
`a 240A 240
`Do "AddAddressFolder"
`Yes
`as shown in FIG. 25A
`
`- 241A
`
`Do
`"UpgradependingCorresp"
`as shown in FIG. 25B.
`
`241
`
`-
`
`IF (IsPendingCorresp)
`AND ( IsConfirmedCorresp)
`
`• Do"AddChangeShortcut" as
`shown in FIG. 10B.
`• Increment Shortcutcount
`
`• Add Shortcut to Unsorted Folder
`•
`Set IsBulkMail to True
`
`Non-zero
`
`Set MessageSummary IsCorresp
`to NOT ISBulkNail
`
`FIG. 23
`
`Facebook's Exhibit No. 1008/1108
`Page 29
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 29 of 33
`
`US 6,725,228 B1
`
`
`
`IF (Isbukwaii) AND (1stome) TTT
`|
`| AND ( Isfrom KnownCorresp.)
`|
`|AND (Direction = drºeceive)
`F
`AND (AddressType = atCorrespAddress)
`|
`| AND (AddressRole = (arSender OR arFrom))
`|
`|- — — — — — — — — — — — — — — — — — — — — — — — — —
`
`| IF (ISBulkMail) AND (ISFromMe)
`AND ( IsToknownCorresp.)
`AND (Direction = drSend)
`| AND (AddressType = atCorrespAddress)
`AND (AddressRole = (ar?o OR arCc OR arboc) )
`
`|
`i
`|
`
`}~~
`If (Isbulkº?al)
`|IF (Direction = drsend) TTTTTTTTTTT
`| AND (AddressType = atMyAddress)
`|
`if (Direction=disend). T
`|AND (AddressType = atNOAddress)
`|
`| AND (OriginCount = 1)
`|
`
`|- — — — — — — — — — — — — — — — — — — — — — — — —
`
`—
`
`-
`IF (Direction = disend) TTTTTTTTTTT
`| AND (ToCount = 1.)
`F----
`AND (AddressRole = ar?o)
`|
`IF (Direction - dºsend) TTTTTTT
`|
`| AND (AddressRole = (ar To OR arCC OR arBcc )) - - - - "
`
`| IF (Direction = drReceive ) AND (ISTOMe)
`AND (AddressType = atMyAddress)
`
`|
`
`-
`
`|
`
`| IF (Direction = drPeceive ) AND ( ISTOMe)
`S >
`| AND (AddressRole = (arSender OR arFrom ))
`*
`ITI llll-l
`ºl. ITT - - - - " " " —
`?IFT (Direction = dreceive) TTTTTTTTT |
`AND (NOT ISTOMe)
`|
`AND (ISFromknownCorresp)
`[* <
`| AND (AddressType = atCorrespAddress)
`| AND (AddressRole = (arSender OR arFrom ).)
`
`~~
`
`FIG. 24A
`
`(FIG. 24B)
`
`(FIG.24B)
`
`(FIG. 24B)
`
`(FIG.24B)
`
`(FIG. 24B)
`
`(FIG.24B)
`
`Facebook's Exhibit No. 1008/1108
`Page 30
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 30 of 33
`
`US 6,725,228 B1
`
`[Bulk Mail Shortcut]
`Set CreateShortcut to True.
`
`
`
`[Confirmed Corresp Shortcut]
`Set IsConfirmedCorresp to True.
`Set CreateShortcut to True.
`
`[Pending Corresp Shortcut]
`Set IsPendingCorresp to True.
`Set Create Shortcut to True.
`
`["Me" Shortcut]
`Set CreateShortcut to True.
`Set Folder Id to "Me" folder.
`
`FIG. 24B
`
`Facebook's Exhibit No. 1008/1108
`Page 31
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 31 of 33
`
`US 6,725,228 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`Build Folder as follows:
`-- Set FolderName from AddressName, or from
`AddressString if AddressName is empty.
`-- Set Folder Type to ftcorresp
`-- Set IsPendingCorresp from AddressEntry
`• Try to add Folder to Catalog database
`•
`If FolderName already exists, generate a unique
`FolderName and then add Folder to Catalog
`database
`• Save Folderid to AddressEntry
`• Generate FolderAdded Event
`
`
`
`
`
`
`
`•
`
`AddAddressFolder
`
`
`
`
`
`Folder Id
`= 0?
`
`Input Parameters
`= AddressEntry
`
`No
`
`
`
`Read Folder from
`Catalog database
`
`
`
`
`
`
`
`•
`
`
`
`
`
`Build Address from AddressEntry
`Set AddressType based on Folder?ype
`ftMe
`--> atMyAddress
`ftCorresp --> at Corresp
`ftBulkNail --> at BulkNail
`Add Address to Catalog database
`
`
`
`FIG. 25A
`
`UpgradependingCorresp
`
`Input Parameters
`= AddressEntry
`
`
`
`Read Folder from Catalog database
`Set IsPendingCorresp to False
`Do "Updatefolder" as shown in FIG.1D,
`Read Address from Catalog database
`Set isPendingCorresp to False
`Update Address in Catalog database
`
`
`
`
`
`FIG. 25B
`
`Facebook's Exhibit No. 1008/1108
`Page 32
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 32 of 33
`
`US 6,725,228 B1
`
`
`
`Input Parameters
`= AddressString
`+ TargetFolder.Id
`
`TargetFolder.Id=
`“2
`in
`Folderid of "Unsorted"
`
`Move to
`"Unsorted"?
`
`Delete Address
`from Catalog
`database
`
`Read Address from
`Catalog database using
`AlternateKey 1
`
`Add AddressString
`to AddressOueue
`
`Address
`Found?
`
`Create Address in Catalog
`database
`
`Set Folder.Id in Address to TargetFolderld
`Read TargetFolder from Catalog database
`Set AddressType based on TargetFolder's
`Folder?ype
`ftMe
`--> atMyAddress
`ftCorresp --> at Corresp
`ftBulkMail --> atºulkMail
`Set IsPendingCorresp in Address from
`TargetFolder
`Update Address in Catalog database
`
`FIG. 26
`
`Facebook's Exhibit No. 1008/1108
`Page 33
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 33 of 33
`
`US 6,725,228 B1
`
`
`
`Position to first MessageSummary
`in Catalog database
`
`Get next MessageSummary in
`Catalog database
`
`Does any AddressString in
`the AddressOueue match
`an AddressString in the
`MessageSummary
`Addresslist?
`
`Empty
`AddressOueue
`
`•
`•
`
`Process Shortcuts as shown in FIG. 10B
`Update MessageSummary in Catalog
`database if IsCorresp has changed
`
`FIG. 27
`
`Facebook's Exhibit No. 1008/1108
`Page 34
`
`
`
`US 6,725,228 B1
`
`1
`SYSTEM FOR MANAGING AND
`ORGANIZING STORED ELECTRONIC
`MESSAGES
`
`2
`Further, once an e-mail message has been received it can
`be difficult to find the message later, especially if there are
`many folders into which the message could have been
`placed. This is frustrating and inefficient for the user.
`Some current electronic mail software is capable of
`filtering incoming e-mail messages by applying a series of
`rules. The filtering rules may be automatically executed each
`time a message is sent or received. The current version of
`Microsoft Outlook has a facility which allows users to create
`such rules, for example. U.S. Pat. No. 6,057,841, Thurlow et
`al., describes a system for applying a set of electronic
`message processing rules for managing incoming and out
`going electronic messages. U.S. Pat. No. 5,377,354, Scan
`nell et al., also describes a rules-based filtering mechanism.
`Rules can execute specific tasks when user-defined crite
`ria are met. Rules can be used to process electronic messages
`without requiring users to spent a lot of time sorting through
`their inboxes deleting, filing, and responding to their mes
`sages. While filter rules are powerful, they are also difficult
`to use because they are typically implemented as a series of
`instructions against which each message is evaluated. If the
`number of rules exceeds a relatively small number the
`overall rule set becomes very difficult to understand.
`Another disadvantage is that rules must be created manually
`and can involve a significant amount of effort if a user wants
`to organize their messages in a thorough manner, such as by
`correspondent. A further disadvantage is that e-mail systems
`which apply filtering rules are typically restricted by the
`folder/message model and cannot organize a message into
`multiple folders without creating multiple copies of the
`message. As a result of the foregoing disadvantages many
`users do not bother to set up such rules. Even when the rules
`have been set up they act only when a message is sent or
`received. Such rules are incapable of managing messages
`after they have been received or sent.
`Other features which software vendors have provided in
`an attempt to help users organize their messages are key
`words (also referred to as “categories”), tags (also referred
`to as “flags”), searching tools, and links to other objects such
`as task lists. While these features improve the manageability
`of e-mail they are less powerful than filtering rules and have
`proven inadequate for dealing with higher message volumes.
`Keywords and tags let a user highlight and identify
`messages to distinguish them from other stored messages. A
`major drawback to these mechanisms is that the highlighted
`messages are visible only in the folder to which the message
`belongs. The value of these mechanisms is significantly
`reduced because there is no fast and convenient way to
`locate all tagged messages or all messages that have been
`assigned a given keyword.
`Searching is an important tool in dealing with large
`message volumes. Traditional sequential search techniques
`are usually too time-consuming to make them very useful
`for larger message stores. As a result, there have been recent
`efforts to provide systems which implement full-text index
`ing and retrieval capabilities for message stores. While
`searching is an important technique for finding previously
`sent or received messages, it is not particularly useful or
`efficient for dealing with messages as they are received and
`then handled by the user. A search must be performed each
`time a user wishes to access messages which match a
`particular set of search criteria. The user is generally forced
`to manually enter the search criteria. Once a search has been
`run the results of the search may be placed into a separate
`“search results” folder (in addition to the folder in which the
`original message resides). Search results folders are not
`
`10
`
`15
`
`20
`
`30
`
`25
`
`FIELD OF THE INVENTION
`This invention relates to electronic messaging systems
`and, in particular relates to systems for managing and
`organizing electronic messages. Messages may be e-mail
`messages, voice mail messages, digitized faxes or the like.
`Specific aspects of the invention provide computer
`implemented methods for managing and organizing elec
`tronic messages, computer systems for managing and orga
`nizing electronic messages, and computer-readable media
`containing computer instructions which, when executed by
`the computer cause the computer to perform a method
`according to the invention.
`BACKGROUND OF THE INVENTION
`Electronic messaging, which includes electronic mail (or
`“e-mail”) messaging, is now an accepted, and some would
`say vital, medium for business and personal communica
`tions. The rapid growth of electronic messaging is expected
`to continue. This growth brings an increasingly serious
`problem of how to manage the volume of messages. Accord
`ing to a 1998 Pitney Bowes survey, 71% of respondents said
`they felt overwhelmed by the number of messages they
`receive. This problem is becoming more severe. John
`Dvorak, a frequent writer on the topic of computing states in
`PC Computing magazine that “... we have poor tools to sort
`and organize (or even find) the e-mail we collect”.
`Electronic messages, which may include attachments of
`diverse kinds, are sent and received through the use of
`messaging software. For example, e-mail messages are sent
`35
`and received by e-mail software such as Microsoft’s OUT
`LOOKTM or Netscape’s COMMUNICATORTM. Other
`widely used types of electronic messaging are voice mail,
`fax and instant messaging. The vast majority of current
`messaging software is based on design principles that origi
`nated when message volumes were low. Current e-mail
`software, for example, provides rudimentary features for
`organizing e-mail messages (both incoming and outgoing)
`into various folders. The most basic model saves received
`messages in an Inbox folder, messages waiting delivery in an
`Outbox folder, and sent messages in a Sent Messages folder.
`Users can create additional user folders to which they can
`move or copy messages. Refinements to this basic model
`include providing additional system folders such as Drafts
`and Wastebasket folders. In general, the user is responsible
`50
`for moving e-mail messages between folders and for man
`aging the messages once they have been placed into a folder.
`This can be an onerous responsibility, especially in cases
`where the user receives large volumes of e-mail messages as
`may easily occur, for ex