`Clark et al.
`
`I IIIII IIIIIIII Ill lllll lllll lllll lllll lllll lllll lllll lllll 111111111111111111
`US006725228Bl
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,725,228 Bl
`Apr. 20, 2004
`
`(54) SYSTEM FOR MANAGING AND
`ORGANIZING STORED ELECTRONIC
`MESSAGES
`
`(76)
`
`Inventors: David Morley Clark, 920 Innes Street,
`Nelson, British Columbia VlL 5T2
`(CA); Thomas Wilson Gibson, 230
`High Street, Nelson, British Columbia
`VlL 3Z9 (CA); David Mitchell
`Bracewell, 708 Third Street, Nelson,
`British Columbia VlL 2R2 (CA); Jeff
`Toy Tsao Kwan, 12 Arundel Avenue,
`Toronto, Ontario M4K 3A4 (CA)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 212 days.
`
`(21) Appl. No.: 09/704,199
`
`(22)
`
`Filed:
`
`Oct. 31, 2000
`
`Int. Cl.7 . ... ... .. ... ... ... ... .. ... ... ... ... ... .. ... ... ... . G06F 7/00
`U.S. Cl. ............................................ 707/102; 707/7
`Field of Search ................................ 707/7, 200, 2,
`707/102
`
`6,167,402 A * 12/2000 Yeager ........................ 707/10
`6,182,071 Bl * 1/2001 Fushimi ......................... 707/7
`6,226,630 Bl * 5/2001 Billmers .. ... ... ... .. ... ... ... .. 707 /3
`6,324,569 Bl * 11/2001 Ogilvie et al. .............. 707/500
`6,396,513 Bl * 5/2002 Reifman et al. ............ 709/206
`6,424,995 Bl * 7/2002 Shuman ...................... 709/206
`6,449,615 Bl * 9/2002 Liu et al. ...................... 707/10
`6,466,941 Bl * 10/2002 Rowe et al.
`................ 707/102
`6,507,846 Bl * 1/2003 Consens ..................... 707/100
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`W099/04344
`
`1/1999
`
`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 MAP!, ©1996, pp. 528-541 (Table
`of Contents also included).
`MSDN Library-Apr. 1999, Messaging API (MAPI), Legal
`Information, Developing a Message Store Provider.
`
`* cited by examiner
`
`Primary Examiner-----Kim Vu
`Assistant Examiner---Monplaisir Hamilton
`(74) Attorney, Agent, or Firm-Oyen, Wiggs, Green &
`Mutala
`
`(51)
`(52)
`(58)
`
`(56)
`
`References Cited
`
`(57)
`
`ABSTRACT
`
`U.S. PATENT DOCUMENTS
`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 Nakanura
`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
`
`A computer-based system catalogs and retrieves electronic
`messages saved in a message store. The system automati(cid:173)
`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(cid:173)
`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(cid:173)
`tally and by providing multiple sorting keys.
`
`34 Claims, 33 Drawing Sheets
`
`64
`
`65
`
`66
`
`Subject
`
`61
`
`61A
`
`Active Mail (14)
`To Do {4)
`Unread (18)
`Today(12)
`Yesterday(6)
`ThisWeek
`Elizabeth Green (2)
`BobBaxter(1)
`Forrester Research
`PDA<savedsearch>
`UI <keyword>
`X45Sludy<keyword>
`
`52
`
`c
`
`Hot
`
`status Correspondem Bulk Mail Keyword
`
`Search User
`
`15msgsof100
`
`626
`
`69
`
`62A
`
`62
`
`Facebook's Exhibit No. 1008/1108
`Page 1
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 1 of 33
`
`US 6,725,228 Bl
`
`D
`
`16
`
`18
`
`D
`
`FIG. 1A
`
`Facebook's Exhibit No. 1008/1108
`Page 2
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 2 of 33
`
`US 6,725,228 Bl
`
`#- -,
`
`l
`
`/
`
`11
`
`-------------------
`C
`A
`8
`---------- --------------
`
`1
`
`15
`
`A
`8
`C
`
`0
`
`17
`
`FIG. 18
`
`Facebook's Exhibit No. 1008/1108
`Page 3
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 3 of 33
`
`US 6,725,228 Bl
`
`25
`
`User Interface Device
`
`20
`
`27
`
`Message Client
`
`26
`
`Transport
`Server
`
`Events
`
`Requests
`
`24
`
`14
`
`23
`
`Message Store
`Server(s)
`
`Incoming Events Catalog Server
`
`Outgoing Requests L---,--.-------~
`
`29
`
`28
`
`Catalog
`database
`
`22
`
`FIG. 2
`
`Facebook's Exhibit No. 1008/1108
`Page 4
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 4 of 33
`
`US 6,725,228 Bl
`
`22 \
`
`38 \
`
`33"- Transport Header
`
`ReceiveDate: Today 10:10:05
`Direction: Received
`
`32"- Envelope
`
`From: Tom Gibson
`To: David Clark
`Cc: David Bracewell
`
`Date
`~ 1---Today
`~ 1---This Week
`~ 1---This Month
`
`Status
`
`-
`~~
`~ r---
`~ r--.: 1--- Received
`
`~
`
`~ Correspondent
`_. 1--- Tom Gibson
`
`36"- Contents
`
`Subject: White paper
`Body:
`Here is the white paper
`for your review.
`~ttachment: White Paper.doc -
`-
`
`36A '--
`
`34"- !:>tatus & urgamzat1ona1
`Information
`Status: IsUnread
`IsActive
`
`Keywords: Marketing
`White Paper
`
`-
`-
`-
`
`~
`
`~
`
`FIG. 3
`
`Attachment
`
`.. 1--- All Attachments
`-
`
`~ 1--- DOC
`
`~
`
`.. 1--- Unread
`Status
`-
`~ 1--- Active Mail
`
`Keywords
`~ 1--- Marketing
`~ 1--- White Paper
`
`Facebook's Exhibit No. 1008/1108
`Page 5
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 5 of 33
`
`US 6,725,228 Bl
`
`18
`
`25
`
`User
`Interface
`Device
`
`27
`
`Message
`Client
`
`40A
`
`FIG. 4A
`
`18
`
`25
`
`User
`Interface
`Device
`
`27
`
`Message
`Client
`
`CLIENT COMPUTER
`
`24
`
`408
`
`FIG. 48
`
`18
`
`25
`
`User
`Interface
`Device
`
`27
`
`29
`
`Catalog
`database
`28
`
`40C
`
`CLIENT COMPUTER
`
`FIG. 4C
`
`Catalog
`database
`
`28
`
`23
`
`CLIENT COMPUTER
`
`29
`
`28
`
`Message
`Store
`Server(s)
`
`Catalog
`database
`
`Message
`Store(s)
`23
`
`SERVER COMPUTER
`
`24
`Message
`Store
`Server(s)
`
`Message
`Store(s)
`23
`
`SERVER COMPUTER
`
`Facebook's Exhibit No. 1008/1108
`Page 6
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 6 of 33
`
`US 6,725,228 Bl
`
`28 \
`
`Catalog
`
`Address
`Addressld
`
`/58
`r--...
`V
`
`Folder
`Folderld
`
`1 56
`
`57
`
`/
`
`Shortcut
`Messageld
`/ Attachld
`.......... Folderld
`
`\V
`
`,7
`
`Storelink /
`StoreLinkid
`
`51
`
`/
`Storeld (F~
`-.........
`' - 51A
`
`I
`MessageSummary, 52
`Attach Summary
`Messageld
`Messageld
`.,,,--
`~ 528 _,,,
`........... Attachld
`StoreAttachld (FK)
`
`StoreLinkid (FKY
`StoreMessageld (FKt'\..
`._ 52A
`
`53
`
`I\_ 53A
`
`23\
`
`Storeld
`
`Message Store
`
`/54
`
`Message
`StoreMessageld
`<message data>
`
`/
`...........
`
`/55
`
`Attachment
`StoreAttachld
`<attachment data>
`
`FIG. SA
`
`Facebook's Exhibit No. 1008/1108
`Page 7
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 7 of 33
`
`US 6,725,228 Bl
`
`50
`
`Catalog / Message Store
`
`Address
`Addressld
`
`Shortcut
`Messageld
`Folder
`Attachld
`~-----. Folderld
`1 - - - - - - - 1 Folderld
`' - - - - - - -<
`
`56
`
`/
`
`57
`
`MessageSummary
`Messageld
`
`52'
`
`AttachSummary
`Messa geld
`1 - - - -+ - 1 Attachld
`
`53'
`
`54'
`
`Message
`Messageld
`<message data>
`
`'
`
`Attachment
`Messageld
`/ Attachld
`-.........
`<attachment data>
`
`' 55'
`
`FIG. SB
`
`Facebook's Exhibit No. 1008/1108
`Page 8
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 8 of 33
`
`US 6,725,228 Bl
`
`X
`
`Date
`
`60
`
`68
`
`64
`
`Help
`To Name
`
`Status
`
`---- -
`---- -
`---- -
`
`From:
`To:
`Subject:
`
`Email Organizer
`
`Edit
`
`File
`Hot
`
`61
`
`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>
`
`62C
`
`Hot Status Correspondent Bulk Mail Keyword Date Attachmen Search User
`
`15 msgs of 100
`
`628
`
`69
`
`62A
`
`67
`
`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 Bl
`
`THIRD LAYER - Correspondence and Bulk Mail Organization
`
`76 \
`. Separate Correspondence from Bulk Mail
`. Automatic organization of Correspondence
`. Bulk Mail organization by sender or recipient
`. Manage Correspondent and Bulk Mail folders
`L'~
`
`SECOND LAYER-Applications of Lightweight Message Shortcuts
`
`74\
`. 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
`
`72\
`. 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 Bl
`
`56
`
`Folder
`Folderld
`ParentFolderld
`FolderName
`FolderType
`IsHot
`FolderDateTime
`FolderSortColumn
`FolderSortDirection
`ShortcutCou nt
`UnreadCount
`CorrespShortcutCou nt
`UnreadCorrespCount
`
`AlternateKeyl
`= ParentFolderld
`
`AlternateKey2
`= ParentFolderld
`+ FolderName
`(uppercase)
`
`AlternateKey3
`= IsHot
`
`57
`
`AlternateKeyl
`= Folderld
`+ SortKey
`
`AlternateKey2
`= TriggerDateTime
`
`Shortcut
`Messageld
`Attachld
`Folderld
`SortKey
`SortColumn
`SortDirection
`Trigger Action
`TriggerDateTime
`IsUnread
`IsCorresp
`IsUserShortcut
`
`52
`
`MessageSummary
`Messageld
`FolderExcludelist
`IsUnread
`IsCorresp
`MessageDateTime
`DisplayNames
`Subject
`
`53
`
`AttachSummary
`Messageld
`Attachld
`AttachType
`AttachName
`AttachSize
`
`FIG. 8
`
`Facebook's Exhibit No. 1008/1108
`Page 11
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 11 of 33
`
`US 6,725,228 Bl
`
`241
`
`291
`
`271
`
`Message Store Server
`
`catalog Server
`
`Message Client
`
`Incoming Events
`
`Incoming Requests
`
`••--~MessageAdded--~
`
`••--MessageChanged~----1~
`
`••---MessageDeleted--~
`
`Outgoing Requests
`
`.-4111------ReadMessage-----
`
`Add Folder
`
`ChangeFolder
`
`DeleteFolder
`
`Read Folder
`
`ReadFolderSubtree
`
`ReadHotFolders
`
`ReadFolderContents
`
`ChangeFolderSortKey
`
`Add Shortcut
`
`DeleteShortcut
`
`•
`•
`•
`•
`•
`•
`•
`•
`•
`•
`
`DeleteFolderShortcuts---e
`
`ReadMessageSummary---e
`
`i.--ReadAttachSummary--•
`
`Outgoing Events
`
`Folder Added
`
`FolderCha nged
`
`FolderHotChanged
`
`FolderDeleted
`
`ShortcutAdded
`ShortcutDeleted
`
`..
`..
`..
`...
`..
`..
`
`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 Bl
`
`ShortcutEntry
`
`ShortcutAction
`Excluded
`Old Shortcut
`Shortcut
`[ AttachSummary ]
`
`FIG. 10A
`
`Memory structures
`
`101
`
`= MessageSummary
`
`Input Parameters C Start
`+
`102 ~ Read all Shortcuts for Message. Save each Shortcut as an OldShortcut
`object in ShortcutArray with ShortcutAction of saDelete .
`•
`Execute Second Layer 2 Automatic Organization Rules
`(which use "AddChangeShortcut" to create Shortcuts)
`+
`Execute Second Layer Filter Rules
`(which use "AddChangeShortcut" to create Shortcuts)
`
`103 L
`
`104 L
`
`105 L
`
`106 L
`
`107
`
`•
`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 ShortcutEntry as shown in FIG. 11A.
`+
`End
`
`FIG. 108
`
`Facebook's Exhibit No. 1008/1108
`Page 13
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 13 of 33
`
`US 6,725,228 Bl
`
`AddChangeShortcut
`
`Input Parameters
`= Messageid
`+ Attachid
`+ Folderid
`+ TriggerAction
`+ TriggerDateTime
`+ IsUserShortcut
`
`Start
`
`Search ShortcutArray for
`matching Shortcut or
`OldShortcut (using
`Messageid + Attachid +
`Folderid as search key)
`
`108
`
`Add ShortcutEntry to
`ShortcutArray. Set
`ShortcutAction to saAdd.
`
`l08A
`----Yes
`
`108C
`
`Build Shortcut object in ShortcutEntry,
`using info from Input Parameters.
`
`Set ShortcutAction
`----I
`to saKeep.
`
`1088
`
`End
`
`FIG. lOC
`
`ValidatefolderlistElemen
`
`Start
`
`Read Folder from Catalog
`database
`
`If FolderDateTime in element
`doesn't match value in
`Folder, delete element from
`FolderExcludelist
`
`End
`
`FIG. 10D
`
`Facebook's Exhibit No. 1008/1108
`Page 14
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 14 of 33
`
`US 6,725,228 Bl
`
`110
`
`Start
`
`Input Parameters
`= ShortcutEntry
`
`111
`
`Read Folder from Catalog
`database
`
`DeleteShortcut
`
`114
`
`• With OldShortcut, do
`"DecrementFolderCounts''
`(FIG. l1B)
`• Delete Shortcut from
`Catalog database
`• Generate ShortcutDeleted
`Event
`Do "UpdateFolder" (FIG.
`l1B)
`
`End
`
`113
`
`UpdateShortcut
`
`•
`
`Do "BuildShortcut" (FIG. l1B)
`If Shortcut is same as OldShortcut, then
`Exit
`• With OldShortcut, do
`"DecrementFolderCounts" (FIG. 118)
`With Shortcut, do "IncrementFolderCounts"
`(FIG. 118)
`• Update Shortcut in Catalog database
`If the SortKey has changed, generate a
`•
`ShortcutSortKeyChanged Event
`Do "UpdateFolder" (FIG. l1B)
`
`Set ShortcutTimer as shown in FIG. 13
`
`115
`
`saKeep
`
`Yes cb
`
`No
`
`112
`
`.Ad
`118)
`• With Shortcut, do
`"IncrementFolderCounts"
`(FIG. l1B)
`• Add Shortcut to Catalog
`database
`• Generate ShortcutAdded
`Event
`• Do "UpdateFolder" (FIG.
`
`FIG. 11A
`
`Facebook's Exhibit No. 1008/1108
`Page 15
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 15 of 33
`
`US 6,725,228 Bl
`
`Build Shortcut
`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.lsUnread, increment UnreadCount
`•
`If Shortcut.IsCorresp, increment CorrespShortcutCount
`•
`If Shortcut.lsCorresp AND IsUnread, increment UnreadCorrespCount
`
`DecrementFolderCounts
`• Decrement ShortcutCount
`•
`If Shortcut.lsUnread, 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 Bl
`
`SHORTCUT STRUCTURE
`
`FLAGS ENCODING
`
`Byte
`Offset Length Field
`0
`4
`Messageld
`4
`2
`Attachld
`Folderld
`4
`6
`10
`SortKey
`6
`SortColumn
`16
`1
`17
`Trigger Action
`1
`18
`TriggerDateTime
`4
`22
`Flags
`1
`23
`IsCorresp
`1
`
`Bit
`0
`1
`2
`
`Length Field
`SortDirection
`1
`IsUnread
`1
`1
`IsUserShortcut
`
`FIELD TYPE
`
`SORT KEY FORMAT
`
`Notes
`
`UnicodeString
`
`UCWl
`I
`
`UCW2
`I
`
`UCW3
`I
`
`Unicode Character Weights of
`first 3 characters of string.
`
`AnsiString
`
`DateTime
`
`Enumeration OR
`Boolean
`(sdDescending)
`
`Enumeration OR
`Boolean
`(sdAscending)
`
`Cl
`
`C2
`
`C3
`
`C4
`
`cs
`
`C6
`
`Values of first 6 characters of
`string.
`
`yy
`
`I MM I DD
`
`hh
`
`I mm'
`
`ss
`
`YY = Year - 1950
`
`Value
`
`yy
`
`MM
`
`DD
`
`hh
`
`YY = Year - 1950
`
`Value
`
`-MM
`
`_2~ I 255 I 2551 255 I
`
`-DD
`
`- hh
`
`YY = Year - 1950
`
`Bits are numbered with O being
`the least significant and 31 the
`most significant.
`
`Not Used
`I
`
`-- 7-0 I
`
`1-
`
`Integer32 OR
`Integer16
`
`131-24
`
`23-1:r 15-8
`
`1
`
`FIG. 12
`
`Facebook's Exhibit No. 1008/1108
`Page 17
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 17 of 33
`
`US 6,725,228 Bl
`
`130
`
`Startup
`Processing
`
`Initialize ShortcutTimer
`1 - - - - - - - . i to inactive state
`
`132
`
`133
`Read first Shortcut
`from Catalog database i+ - - - - - - - - - - - - ,
`using AlternateKey2
`
`">-------No-~-
`
`135
`AddChange
`Shortcut
`
`If TriggerDateTime is non-zero and is
`less than ShortcutTimer, reset
`.__ ___
`ShortcutTimer to TriggerDateTime
`
`End
`
`137
`Shortcut
`Timer
`
`• Read Shortcut from Catalog database
`1------• If Trigger Action is taDeleteShortcut then
`generate an internal DeleteShortcut Request.
`
`138
`
`FIG. 13
`
`Facebook's Exhibit No. 1008/1108
`Page 18
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 18 of 33
`
`US 6,725,228 Bl
`
`140
`
`Start
`
`Request Parameters
`= Folderid
`+ SortKey
`+ SortDirection
`+ RequestCount
`+ CorrespOnly
`
`142A
`
`>---sdDescending
`
`Use Folderid and
`SortKey to set
`position on Shortcut
`Alternate Keyl
`
`sdAscending
`
`143A
`
`1436
`
`Position at first
`Shortcut in Folder
`using AlternateKeyl
`
`Position at last
`Shortcut in Folder
`using AlternateKeyl
`
`Read Next/Prev Shortcut in Folder
`(depending on SortDirection)
`
`145A
`
`Set IsEOF to
`True
`
`Is (CorrespOnly = True)
`AND (IsCorresp = False)?
`
`1-----Yes---<
`
`Yes
`
`Is (ContentCount >=
`RequestCount) AND
`(Current SortKey NOT=
`Previous SortKey)?
`
`149
`
`Sort ContentArray in
`memory, using values
`from MessageSummary
`and AttachSummary
`
`End
`
`148
`BuildRe I
`Read related MessageSummary from Catalog
`database
`If Attachid is non-zero, read related
`AttachSummary from Catalog database
`Add MessageSummary and AttachSummary (or
`NULL) to ContentArray
`Increment ContentCount
`Set SortKey in Reply from the current Shortcut
`SortKey
`
`Reply Parameters
`= ResultCode
`+ SortKey
`+ IsEOF
`+ ContentCount
`+ ContentArray
`= 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 Bl
`
`150
`
`Start
`
`Request Parameters
`= Folderid
`+ FolderSortColumn
`+ FolderSortDirection
`
`Read Folder from Catalog
`database
`
`152
`
`Position at first Shortcut
`in Folder using
`Alternate Keyl
`
`154
`
`Read next Shortcut in Folder
`
`155
`
`No
`
`The underlying data type
`for the FolderSortColumn
`
`Need to build SortKey if
`FolderSortColumn
`NOT = SortColumn
`OR FolderSortDirection
`NOT = SortDirection
`
`156
`
`157
`
`No
`
`Need to build
`SortKey if
`FolderSortColumn
`NOT = SortColumn
`
`---,--Yes
`
`158
`
`•
`
`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
`•
`' - - - - - - - - -1 AttachSummary from the Catalog database
`• Build the SortKey
`• Update Shortcut in Catalog database
`
`159
`
`• Set FolderSortColumn
`1----• Set FolderSortDirection
`• Update Folder in Catalog database
`
`160
`
`End
`
`FIG. 15
`
`Facebook's Exhibit No. 1008/1108
`Page 20
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 20 of 33
`
`US 6,725,228 Bl
`
`Contains all tables and fields of Base Layer, plus the following:
`
`Folder
`
`56
`
`Shortcut
`
`57
`
`SearchCriteria
`
`MessageSummary
`
`52
`
`AttachSummary
`
`53
`
`/
`............
`
`Direction
`SendState
`Is Deleted
`IsActive
`IsKept
`IsTagged
`IsToDo
`Keyword list
`
`FIG. 16
`
`Facebook's Exhibit No. 1008/1108
`Page 21
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 21 of 33
`
`US 6,725,228 Bl
`
`Root
`--- Status
`1--- Active Ma ii
`1--- Deleted
`1--- Drafts
`1--- Kept
`1--- Received
`1--- Sent
`1---Tagged
`1---To Do
`1--- Unread
`1--- Waiting Send
`
`1--- Date
`I
`!---Today
`I
`1--- Yesterday
`I
`1--- This Week
`I
`1--- Last Week
`1--- * Automatically created Month folders
`I
`I
`1--- Attachment
`I
`1--- All Attachments
`1--- * Automatically created AttachmentType folders
`I
`I
`1--- Keyword
`1--- * Automatically created Keyword folders
`I
`I
`1--- Search Results
`1--- * Search Results folders
`I
`I
`1--- User Folders
`1--- * User created folders
`I
`I
`
`FIG. 17
`
`Facebook's Exhibit No. 1008/1108
`Page 22
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 22 of 33
`
`US 6,725,228 Bl
`
`Contains all tables and fields of Base Layer and Second Layer, plus the following:
`
`Folder
`
`56
`
`Shortcut
`
`57
`
`IsPendingCorresp
`
`Address
`Addressid
`Folderld
`AddressString
`AddressType
`IsPendingCorresp
`
`AlternateKeyl
`= AddressString
`(uppercase)
`
`AlternateKey2
`= Folderld
`
`58
`
`AddressList
`
`FIG. 18
`
`Facebook's Exhibit No. 1008/1108
`Page 23
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 23 of 33
`
`US 6,725,228 Bl
`
`Contains all Folders in Base Layer and Second Layer, plus the following:
`
`<Root>
`1--- Correspondents
`I
`1--- Me
`1--- * Automatically created Correspondent folders
`I
`1--- * User created Correspondent folders
`I
`I
`1--- Bulk Mail
`I
`1--- Unsorted
`1--- * User created Bulk Mail folders
`I
`
`FIG. 19
`
`Facebook's Exhibit No. 1008/1108
`Page 24
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 24 of 33
`
`US 6,725,228 Bl
`
`Includes all Requests and Events in Base Layer and Second Layer, plus the following:
`
`241
`
`291
`
`271
`
`Message Store Server
`
`catalog Server
`
`Message Client
`
`Incoming Requests
`
`i.----AddMyAddress---•
`ReadFolderAddresses------e
`
`ProcessAddressQueue---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 Bl
`
`217
`AddressArray r-__,1
`
`Address Entry
`
`AddressRole
`AddressString
`AddressName
`Addressld
`Folderld
`Address Type
`IsPendingCorresp
`IsConfi rmedCorresp
`CreateShortcut
`
`FIG. 21A
`
`218
`
`StateCounters
`
`OriginCount
`ToCount
`ShortcutCou nt
`
`--
`--
`
`Phase 1 Processing
`~----------------------------1
`- - - - - ..J Increment IF ( AddressRole = ( arSender OR arFrom ) )
`1----------------------------~
`-----------------------------1
`.J Increment IF ( AddressRole = arTo)
`1----------------------------~
`
`-
`
`-
`
`-
`
`-
`
`-
`
`FIG. 218
`
`1
`
`1
`
`Facebook's Exhibit No. 1008/1108
`Page 26
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 26 of 33
`
`US 6,725,228 Bl
`
`Phase 1 Processing
`
`/
`
`/
`
`/
`
`/
`
`/
`
`/
`
`/ ,
`
`,,, ,.,. ,.,.
`
`L..-
`
`I
`
`-
`
`-
`
`- _
`
`-
`',
`'
`
`: Set to True
`( Direction = drSend )
`IF
`1
`/1 AND ( AddressType = atMyAddress )
`I AND ( AddressRole = arFrom)
`I_ - - - - - - - - - - - - - - - - - - - - - - -
`
`I
`I
`I
`1
`I
`- ___ _J
`
`:
`1
`I
`
`1
`
`1
`
`1
`
`219
`Stateflags ~
`: Set to True
`( Direction = drReceive )
`IF
`1
`,,, ,,, I AND ( AddressType = atMyAddress )
`IsFromMe
`J
`I AND ( AddressRole = arTo OR arCc OR arBcc )
`IsToMe
`1----------------------------
`r----------------------------1
`IsBulkMail
`1 Set to True
`J
`IF ( AddressType = atBulkAddress)
`-1
`'---------------------------(cid:173)
`,----------------------------~
`' , 1 Set to True
`1
`IF
`( AddressType = atCorrespAddress )
`:
`'-1
`1 AND ( AddressRole = ( arSender OR arFrom))
`I_ -
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`\ 1----------------------------~
`\ 1 Set to True
`1
`( AddressType = atCorrespAddress )
`IF
`:
`"l
`1 AND ( AddressRole = ( arTo or arCc or arBcc ) )
`1-----------------------------
`
`IsFromKnownCorresp "
`IsToKnownCorresp
`
`I\
`\
`
`\
`
`\
`
`\
`
`\
`
`\
`
`FIG. 21C
`
`Facebook's Exhibit No. 1008/1108
`Page 27
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 27 of 33
`
`US 6,725,228 Bl
`
`220
`
`Start
`
`Input Parameters
`= MessageSummary
`
`NOT ssUnsent
`
`Initialize memory structures
`
`223
`
`ssUnsent
`
`Set MessageSummary
`IsCorresp to True
`
`End
`
`Get next element in
`MessageSummary's Addresslist
`
`Ye s~
`
`Initialize AddressEntry and add to
`AddressArray
`
`Increment StateCounters
`
`Read Address from catalog
`database
`
`229
`No
`
`Add Address information to
`AddressEntry
`
`Set StateFlags
`
`226
`
`227
`
`228
`
`231
`
`FIG. 22
`
`Facebook's Exhibit No. 1008/1108
`Page 28
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 28 of 33
`
`US 6,725,228 Bl
`
`235\
`
`Get next AddressEntry in
`AddressArray
`
`Yes
`
`Apply Corresp/8ulk Mail Rules to
`AddressEntry as shown in FIG. 24
`
`Do "AddAddressFolder"
`as shown in FIG. 25A
`
`Yes
`
`Do
`"UpgradePendingCorresp"
`as shown in FIG. 258.
`
`Yes
`
`( IsPendingCorresp)
`IF
`AND ( IsConfirmedCorresp)
`
`242
`
`• Do "AddChangeShortcut" as
`shown in FIG. 108.
`Increment ShortcutCount
`
`•
`
`• Add Shortcut to Unsorted Folder
`Set Is8ulkMail to True
`
`243A
`
`2438
`
`Non-zero
`- - a - 1
`
`Set MessageSummary IsCorresp
`to NOT IsBulkMail
`
`f----t~
`
`End
`
`FIG. 23
`
`Facebook's Exhibit No. 1008/1108
`Page 29
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 29 of 33
`
`US 6,725,228 Bl
`
`1
`
`-
`
`-
`
`Rules
`r - - - - - - - - - - - - - - - - - - - - - - - - ~
`I IF
`( Is8ulkMail )
`I
`I AND ( AddressType = at8ulkAddress)
`:- - - _
`'-------------------------
`r-------------------------
`1 IF
`( Is8ulkMail ) AND ( IsToMe )
`:
`1 AND ( IsFromKnownCorresp )
`1
`: AND ( Direction = drReceive )
`1-- - __ _
`1 AND ( AddressType = atCorrespAddress )
`:
`1 AND ( AddressRole = ( arSender OR arFrom) )
`L-------------------------
`~------------------------,
`I IF
`( Is8ulkMail) AND ( IsFromMe)
`I
`: AND ( IsToKnownCorresp )
`: __
`1 AND ( Direction = drSend )
`i -
`1 AND ( AddressType = atCorrespAddress)
`1
`I AND ( AddressRole = ( arTo OR arCc OR ar8cc ) ) I
`'------------------------~
`-------------------------1 ~~
`I IF
`( Is8ulkMail )
`t -
`'------------------------~
`,- -- ---- ---- - - - - - - - - -- - - --,
`( Direction = drSend )
`1 IF
`L ___ _
`1 AND ( AddressType = atMyAddress )
`1
`L------------------------~
`-------------------------,
`( Direction = drSend )
`: IF
`1
`1 AND ( AddressType = atNoAddress )
`1 ____ _
`I AND ( OriginCount = 1 )
`:
`1 AND ( AddressRole = arFrom )
`'-------------------------
`: IF- ( D;ect~;;; drSe~d )
`:
`1 AND ( ToCount = 1 )
`1-
`I AND ( AddressRole = arTo )
`1
`'------------------------~
`r------------------------~
`( Direction = drSend )
`1 IF
`I
`1 AND ( AddressRole = ( arTo OR arCc OR ar8cc ) ) :- -
`'-------------------------
`r------------------------~
`( Direction = drReceive ) AND ( IsToMe )
`1 IF
`I
`I AND ( AddressType = atMyAddress )
`:- - - - -
`'-------------------------
`r------------------------~
`r' , ,
`( Direction = drReceive ) AND ( IsToMe )
`1 IF
`I
`I AND ( AddressRole = ( arSender OR arFrom ) )
`'-------------------------
`r------------------------,
`( Direction = drReceive )
`1 IF
`1
`: AND ( NOT IsToMe )
`:
`1 AND ( IsFromKnownCorresp )
`,- __
`1 AND ( AddressType = atCorrespAddress )
`1
`....
`I AND ( AddressRole = ( arSender OR arFrom ) )
`1
`'------------------------~
`FIG. 24A
`
`1
`
`-
`
`-
`
`-
`
`-
`
`' ,
`
`Start
`
`Yes.S (FIG. 248)
`
`Yes.g (FIG. 248)
`
`ves.g (FIG. 248)
`
`Ye s~
`
`Yes.S (FIG. 248)
`
`Yes.S (FIG. 248)
`
`Yes.g (FIG. 248)
`
`YesB (FIG. 248)
`
`Yes.S (FIG. 248)
`
`Yes.g (FIG. 248)
`
`Yes.g (FIG. 248)
`
`--.~c End
`
`)
`
`Facebook's Exhibit No. 1008/1108
`Page 30
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 30 of 33
`
`US 6,725,228 Bl
`
`[Bulk Mail Shortcut]
`1--------1~Set CreateShortcut to True.
`
`[Confirmed Corresp Shortcut]
`1--------1~Set IsConfirmedCorresp to True. 1 - - - - - - - - - - '
`Set CreateShortcut to True.
`
`End
`
`[Pending Corresp Shortcut]
`1---------i~Set IsPendingCorresp to True.
`Set Create Shortcut to True.
`
`["Me" Shortcut]
`1---------1.iSet CreateShortcut to True.
`Set Folderld 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 Bl
`
`AddAddressFolder
`
`Input Parameters
`= AddressEntry
`
`Read Folder from
`Catalog database
`
`Build Folder as follows:
`-- Set FolderName from AddressName, or from
`AddressString if AddressName is empty.
`-- Set FolderType to fl:Corresp
`-- 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
`
`• Build Address from AddressEntry
`Set AddressType based on FolderType
`--> atMyAddress
`ftMe
`fl:Corresp --> atCorresp
`ftBulkMail --> atBulkMail
`• Add Address to Catalog database
`
`End
`
`FIG. 25A
`
`UpgradePendingCorresp
`
`• Read Folder from Catalog database
`• Set IsPendingCorresp to False
`,__ _ ___,• Do "UpdateFolder" as shown in FIG.lD.
`• Read Address from Catalog database
`• Set isPendingCorresp to False
`• Update Address in Catalog database
`
`Start
`
`Input Parameters
`= AddressEntry
`
`End
`
`FIG. 258
`
`Facebook's Exhibit No. 1008/1108
`Page 32
`
`
`
`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 32 of 33
`
`US 6,725,228 Bl
`
`260
`
`Input Parameters
`= AddressString
`+ TargetFolderid
`
`Start
`
`TargetFolderid =
`Folderld of "Unsorted"?
`
`262
`
`End
`
`Delete Address
`from Catalog
`database
`
`267
`
`' - - - - - - Add AddressString
`to AddressQueue
`
`Yes
`
`263
`
`Read Address from
`Catalog database using
`AlternateKeyl
`
`No
`
`Create Address in Catalog
`database
`
`265
`
`266
`
`Yes
`
`• Set Folderld in Address to TargetFolderid
`• Read TargetFolder from Catalog database
`• Set AddressType based on TargetFolder's
`Folder Type
`--> atMyAddress
`ftMe
`ftCorresp --> atCorresp
`ftBulkMail --> atBulkMail
`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 Bl
`
`270
`
`Start
`
`,__ _ _, Position to first MessageSummary
`in Catalog database
`
`Get next MessageSummary in
`Catalog database
`
`271A
`
`271B
`
`Does any AddressString in
`the AddressQueue match
`an AddressString in the
`MessageSummary
`Addresslist?
`
`No
`
`273
`Process Shortcuts as shown in FIG. 10B
`Update MessageSummary in catalog
`database if IsCorresp has changed
`
`274
`
`Empty
`AddressQueue
`
`End
`
`FIG. 27
`
`Facebook's Exhibit No. 1008/1108
`Page 34
`
`
`
`US 6,725,228 B 1
`
`1
`SYSTEM FOR MANAGING AND
`ORGANIZING STORED ELECTRONIC
`MESSAGES
`
`FIELD OF THE INVENTION
`
`5
`
`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
`10 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(cid:173)
`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(cid:173)
`sages. While filter rules are powerful, they are also difficult
`20 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
`25 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
`30 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
`35 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(cid:173)
`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
`45 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
`50 locate all tagged messages or all messages that have been
`assigned a given keyword.
`Searching is an important tool in dealing with large
`message volume