throbber
(12) United States Patent
`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
`
`Yes~
`
`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)
`
`Yes~
`
`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 volumes. Traditional sequent

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket