throbber
United States Patent
`US 6,725,228 Bl
`(10) Patent No.:
`(12)
`Apr. 20, 2004
`(45) Date of Patent:
`Clarket al.
`
`US006725228B1
`
`(54)
`
`(76)
`
`SYSTEM FOR MANAGINGAND
`ORGANIZING STORED ELECTRONIC
`MESSAGES
`
`Inventors: David Morley Clark, 920 Innes Street,
`Nelson, British Columbia VLL 5T2
`(CA); Thomas Wilson Gibson, 230
`High Street, Nelson, British Columbia
`VIL 3Z9 (CA); David Mitchell
`Bracewell, 708 Third Street, Nelson,
`British Columbia VIL 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)
`
`(22)
`
`(51)
`(52)
`(58)
`
`(56)
`
`Appl. No.: 09/704,199
`
`Filed:
`
`Oct. 31, 2000
`
`Tint. C1.) coccececccceeseeeessereereteteeeeserereeee GOGF 7/00
`US Chr icine TOTWOT
`Field of Search ...............0.....0... 707/7, 200, 2,
`707/102
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`9/1986 Linderman.................. 712/300
`4,611,280 A *
`
`2/1989 McCauley ....
` w. 707/7
`4,809,158 A *
`.......... 7OT/7
`5,274,805 A * 12/1993 Ferguson et al.
`5,377,354 A
`12/1994 Scannell et al.
`5,440,734 A *
`8/1995 Wagar... FOF/T
`5,544,360 A
`8/1996 Lewak et al.
`5,548,789 A
`8/1996 Nakanura
`............. 707/102
`5,615,367 A *
`3/1997 Bennett et al.
`............. 709/207
`5,694,616 A * 12/1997 Johnson et al.
`5,813,009 A *
`9/1998 Johnsonet al. .............. 707/100
`5,899,995 A
`5/1999 Millier et al.
`5,948,058 A *
`9/1999 Kudoh et al.
`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 oo... cceeseeseenes TOUT
`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 Shalt oo...ccc TOTT
`
`............ 707/L04.1
`
`.....ccccccecceceee 707/10
`6,167,402 A ™ 12/2000 Yeager
`6,182,071 Bl
`*
`1/2001
`Fushimi ...
`wane TOUT
`6,226,630 Bl
`*
`5/2001 Billmers ......
`vee TOT/3
`6,324,569 Bl
`* 11/2001 Ogilvie et al.
`« 707/500
`
`«. 709/206
`6,396,513 Bl
`*
`5/2002 Helfman etal.
`7/2002 Shuman .....u uu... 709/206
`6,424,995 Bl
`*
`9/2002 Liuetal. .............0. 7O7/LO
`6,449,615 Bl
`*
`« FOT/LO2
`6,466,941 Bl
`* 10/2002 Roweet al.
`.
`
`1/2003 Consens ................... 707/100
`6,507,846 Bl
`*
`
`
`
`..
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`WO99/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 MAPI, ©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) Altorney, Agent, or Firm—Oyen, Wiggs, Green &
`Mutala
`
`(57)
`
`ABSTRACT
`
`A computer-based system catalogs andretrieves 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-
`tancously. 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.
`
`34 Claims, 33 Drawing Sheets
`
`
`
`
`
`
`
`
`(14)
`Active Mall
`ToDo (4)
`Unread (18)
`‘Tocay (12)
`‘Powendary(5)
`Tht Week
`Elizabeth Green (2)
`Bob Baxter (1)
`Forrester Research
`POA <taved search>
`-
`UL <heyweard
`M45 Study “eeywor|—
`|
`~ps‘Smt Goresnondertfukmal]Keyword oeImameSearch| Use
`1%
`{
`=
`:)
`=- 6
`eat
`
`[
`
`
`1A -
`
`001
`
`Apple Inc.
`APL1108
`U.S. Patent No. 8,724,622
`
`001
`
`Apple Inc.
`APL1108
`U.S. Patent No. 8,724,622
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 1 of 33
`
`US 6,725,228 BI
`
`
`
`FIG. 1A
`
`002
`
`002
`
`

`

`Apr. 20, 2004
`
`Sheet 2 of 33
`
`US 6,725,228 B1
`
`U.S. Patent
`
`FIG. 1B
`
`003
`
`003
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 3 of 33
`
`US 6,725,228 BI
`
`User Interface Device
`
`Message Client
`
`29
`
`MessageStore
`Server(s)
`
`Incoming Events
`
`Outgoing Requests
`
`FIG. 2
`
`004
`
`004
`
`

`

`U.S. Patent
`
`Apr.20, 2004
`
`Sheet 4 of 33
`
`S 6,725,228 B1
`
`-7 U
`
`Date
`|--- Today
`|--- This Week
`|--- This Month
`
`Status
`|--- Received
`
`Correspondent
`|--- Tom Gibson
`
`Attachment
`|--- All Attachments
`|--- DOC
`
`Status
`|--- Unread
`|--- Active Mail
`
`Keywords
`|--- Marketing
`|--- White Paper
`
`Transport Header
`
`ReceiveDate: 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
`
`atus & Organizationa
`Information
`
`Status: IsUnread
`IsActive
`
`Keywords: Marketing
`White Paper
`
`FIG. 3
`
`005
`
`005
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 5 of 33
`
`US 6,725,228 B1
`
`Message
`Client
`
`CLIENT COMPUTER
`
`
`
`
`
`
` aa———
`
`CLIENT COMPUTER
`
`SERVER COMPUTER
`
`40B
`
`FIG. 4B
`
`
`
`User
`Interface
`Device
`
`—_
`Catalog
`database
`
`Message
`Store(s)
`
`CLIENT COMPUTER
`
`SERVER COMPUTER
`
`40c
`
`FIG. 4C
`
`006
`
`006
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 6 of 33
`
`US 6,725,228 B1
`
`SOREL
`
`<J StoreLinkId (FK
`S StoreMessageld (FK
`
`<ettachmentdata>
`
`Message [ *
`StoreMessageld
`
`Attachment
`<{ StoreAttachId
`
`[>>
`
`FIG. 5A
`
`007
`
`007
`
`

`

`U.S. Patent
`
`Apr.20, 2004
`
`Sheet 7 of 33
`
`US 6,725,228 B1
`
`Catalog / Message Store
`
`
`
`
`
`FIG. 5B
`
`008
`
`
`Shortcut
`
`
`Messageld
`_ AttachId
`
`
`“J Folderld
`
`
`
`MessageSummary Messageld
`
`
`
`
`
`
`
`
`
`
`57
`
`VY
`
`WV
`
`
`
`AttachId
`
`55
`
`Attachment
`Messageld
`AttachId
`
`<attachment data>
`
`Q
`
`Message
`Messageld
`
`008
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 8 of 33
`
`US 6,725,228 B1
`
`60
`
`68
`
`64
`
`65
`
`66
`
`
`
`fEnatOrarter_[———~\—~\ x
`
`
`
`
`
`61
`
`61A
`
`ce Date
`
`—
`
`(14)
`
`Active Mail
`To Do (4)
`Unread (18)
`Today (12)
`Yesterday (6)
`This Week
`
`Elizabeth Green (2)
`Bob Baxter(1)
`Forrester Research
`
`PDA <saved search>
`
`Ul <keyword>
`
`X45 Study <keyword>
`
`—
`—
`
`——
`
`OE at[Status[Correspondent]BukMail|Keyword[Date[Atachmend|Search|User
`figmecsorsoofC
`69
`028
`62A
`67
`
`eo
`
`FIG. 6
`
`009
`
`009
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 9 of 33
`
`US 6,725,228 B1
`
`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
`
`
`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 manualorganization in user created folders
`Improved filtering mechanisms
`Improved handling of search results
`
`se©©®©@#©
`
`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
`
`010
`
`010
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 10 of 33
`
`US 6,725,228 BI
`
`AlternateKey1
`
`
`
`olderType
`
`56
`
`
`
`57
`
`
`
`
`Folder
`
`iacaueis
`Folderld
`
`AttachId
`ParentFolderld
`arolderld
`= ParentFolderid eee
`Folderid
`
`
`
`
`
`+ SortKey
`IsHot
`4 Se
`AlternateKey2
`
`= ParentFolderid|FolderDateTime ) SortDirection AlternateKey2
`
`:
`:
`+ FolderName
`FolderSortColumn
`— DateTi
`
`
`
`TriggerAction
`(uppercase)
`FolderSortDirection
`= TGESte Me
`
`
`
`TriggerDateTime
`PPE
`ShorbcutCount
`
`
`
`AlternateKey3_|UnreadCount toe
`
`I
`= IsHot
`CorrespShortcutCount
`
`UnreadCorrespCount
`sUserShortcut
`
`
`
`MessageSummary
`Messageld
`AttachSummary
`FolderExcludeList
`IsUnread
`IsCorresp
`MessageDateTime
`DisplayNames
`
`Subject
`
`AttachType
`AttachName
`AttachSize
`
`FIG. 8
`
`011
`
`011
`
`

`

`U.S. Patent
`
`Apr.20, 2004
`
`Sheet 11 of 33
`
`US 6,725,228 B1
`
`4
`
`2°
`
`7
`
`Message Store Server
`
`Catalog Server
`
`MessageClient
`
`ReadFolderContents———
`
`ChangeFolderSortkey———e
`
`AddShortcut-—————
`
`DeleteShortcut-——e
`
`DeleteFolderShortcuts———e
`
`ReadMessageSummary——e
`
`
`
`
`
`
`
`
`
`ReadAttachSummary——e
`
`OutgoingEvents
`
`
`OutgoingRequests
`
`FolderAdded-——_—_>
`<?—_ReadMessage
`
`FolderChanged-————>
`
`FolderHotChanged-——}>
`
`ShortcutSortKeyChanged—>
`
`
`
`SummaryChanged——?
`
`FIG. 9
`
`012
`
`012
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 12 of 33
`
`US 6,725,228 BI
`
`Memory structures
`
`ShortcutEntry
`
`
`100 =
`ShortcutAction
`ShortcutArray
`Excluded
` OldShortcut
`
`
`
`[ AttachSummary ]
`
`FIG. 10A
`
`Process each ShortcutEntry as shownin FIG. 11A.
`
`Input Parameters
`= MessageSummary
`
`Readall 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 LayerFilter 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.
`
`FIG. 10B
`
`013
`
`013
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 13 of 33
`
`US6,725,228 B1
`
`AddChangeShortcut
`
`Input Parameters
`= Messageld
`+ AttachId
`+ FolderId
`+ TriggerAction
`+ TriggerDateTime
`+ IsUserShortcut
`
`Add ShortcutEntry to
`ShortcutArray. Set
`
`Search ShortcutArray for
`matching Shortcut or
`OldShortcut (using
`Messageld + AttachId +
`FolderId as search key)
`
`ShortcutAction to saAdd.
`FolderExcludeList
`
`ValidateFolderListElemen
`
`FIG. 10C
`
`Read Folder from Catalog
`database
`
`If FolderDateTime in element
`doesn't match value in
`Folder, delete element from
`
`FIG. 10D
`
`014
`
`014
`
`

`

`Set ShortcutTimer as shownin FIG. 13
`
`Yes
`
`sakeep
`
`No
`
`:
`
`U.S. Patent
`
`Apr.20, 2004
`
`Sheet 14 of 33
`
`US 6,725,228 B1
`
`Input Parameters
`= ShortcutEntry
`111
`
`Read Folder from Catalog
`database
`
`saDelete
`
`IsUser
`Shortcut?
`
`No
`
`on
`
`DeleteShortcut
`
`With OldShortcut, do
`"DecrementFolderCounts"
`(FIG. 11B)
`Delete Shortcut from
`Catalog database
`Generate ShortcutDeleted
`Event
`Do "UpdateFolder" (FIG.
`118)
`
`UpdateShortcut
`
`Do "BuildShortcut" (FIG. 11B)
`If Shortcut is same as OldShortcut, then
`Exit
`With OldShortcut, do
`“DecrementFolderCounts" (FIG. 11B)
`With Shortcut, do "IncrementFolderCounts"
`(FIG. 11B)
`Update Shortcut in Catalog database
`If the SortKey has changed, generate a
`ShortcutSortKeyChanged Event
`Do "UpdateFolder" (FIG. 11B)
`
`115
`
`FIG. 11A
`
`015
`
`B Ath (Tl ii
`
`on
`11B)
`With Shortcut, do
`"IncrementFolderCounts"
`(FIG. 11B)
`Add Shortcut to Catalog
`database
`Generate ShortcutAdded
`Event
`Do "UpdateFolder" (FIG.
`
`015
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 15 of 33
`
`US6,725,228 BI
`
`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
`
`DecrementFolderCounts
`
`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
`
`016
`
`016
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 16 of 33
`
`US 6,725,228 BI
`
`SHORTCUT STRUCTURE
`
`FLAGS ENCODING
`
`Byte
`Offset Length Field
`
`0
`4
`6
`10
`16
`17
`18
`22
`23
`
`4
`2
`4
`6
`1
`1
`4
`1
`1
`
`Messageld
`AttachId
`FolderId
`SortKey
`SortColumn
`TriggerAction
`TriggerDateTime
`Flags
`IsCorresp
`
`Bit
`
`Length Field
`
`0
`1
`2
`
`1
`1
`1
`
`SortDirection
`IsUnread
`IsUserShortcut
`
`FIELD TYPE
`
`SORT KEY FORMAT
`
`Notes
`
`:
`;
`UnicodeString
`
`ucW1
`
`ucw2
`
`UCW3
`
`Unicode Character Weights of
`first 3 characters of string.
`
`zee cS|C6Ci C2 C3 C4 Values of first 6 characters of
`
`
`AnsiString
`string.
`
`
`
`
`
`
`
`
`
`DateTime
`
`YY
`
`MM
`
`DD
`
`hh
`
`mmj|
`
`ss
`
`YY = Year - 1950
`
`Enumeration OR
`
`
`Sadiean YY|MM] DD|bh|we year- 1950Value
`(sdDescending)
`
`
`
`
`
`Svea OR 255|255)Value 255] 255| yy~vear- 1950
`
`
`
`
`
`(edascending) -YY|-MM| -DD] -hh
`
`
`Integer32 OR
`Integer16
`
`siciianncne Bits tees=
`
`31-24}
`23-16]
`15-8)
`7-0
`
`
`Bits are numbered with 0 being
`the least significant and 31 the
`most significant.
`
`FIG. 12
`
`017
`
`017
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 17 of 33
`
`US 6,725,228 B1
`
`Startup
`Processing
`
`Initialize ShortcutTimer
`to inactive state
`
`Readfirst Shortcut
`from Catalog database
`using AlternateKey2
`
`generate an internal DeleteShortcut Request.
`
`135
`
`If TriggerDateTime is non-zero and is
`— less than ShortcutTimer, reset
`
`ShortcutTimer to TriggerDateTime
`
`137
`Shortcut
`
`*
`+
`
`Read Shortcut from Catalog database
`If TriggerActionis taDeleteShortcut then
`
`FIG. 13
`
`018
`
`018
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 18 of 33
`
`US 6,725,228 B1
`
`140
`
`E
`
`142
`
`Yes
`
`142A
`
`Sort
`Direction?
`
`5
`sdDescending
`
`
`
`AlternateKey1 using AlternateKey1
` + CorrespOnly
`
`.
`Request Parameters
`
`
`
`
`= Folderld sdAscending—143ANo 143 143B
`
`+ SortKey
`
`+ Sortbirection|“Soreartoset” Position atfirst Position atlast
`
`
`
`+ RequestCount|position on Shortcut Shortcut in Folder Shortcutin Folder
`
`using AlternateKey1
`|
`
`
`
`144
`
`
`
`Is (CorrespOnly = True)
`AND (IsCorresp = False) ?
`
`i0
`
`
`
`|
`
`
`Filter?
`
`Is (ContentCount >=
`RequestCount) AND
`
`(Current SortkKey NOT =
`Previous SortKey)?
`
`Read
`Enough?
`
`
`149
`
`
`
`BuildRepl
`
`database
`If AttachId is non-zero, read related
`
`Read related MessageSummaryfrom Catalog
`AttachSummary from Catalog database
`
`Add MessageSummary and AttachSummary (or
`NULL) to ContentArray
`Increment ContentCount
`Set SortKey in Reply from the current Shortcut
`SortKey
`
`
`NS
`
`Sort ContentArray in
`
`
`memory, using values
`from MessageSummary
`and AttachSummary
`
`(end)
`
`Reply Parameters
`= ResultCode
`+ SortKey
`+ ISEOF
`+ ContentCount
`+ ContentArray
`
`= Array of [ MessageSummary + (AttachSummary OR NULL) ] |
`
`FIG. 14
`
`019
`
`019
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 19 of 33
`
`US 6,725,228 BI
`
`Read Folder from Catalog
`
`152
`
`Request Parameters
`= Folderld
`+ FolderSortColumn
`+ FolderSortDirection
`
`Position atfirst Shortcut
`in Folder using
`AlternateKey1
`
`Read next Shortcut in Folder
`
`155
`
`(Toaje-ves
`
`The underlying data type
`for the FolderSortColumn
`
`156
`
`End of
`
`Folder?
`
`No
`
`Enumeration
`OR Boolean
`
`Need to build SortKeyif
`FolderSortColumn
`NOT = SortColumn
`OR FolderSortDirection
`NOT = SortDirection
`
`Need to build
`SortKeyif
`FolderSortColumn
`NOT = SortColumn
`
`* Update Folder in Catalog database
`
`If FolderSortColumn is a column in the MessageSummary, read
`the MessageSummary from the Catalog database
`If FolderSortColumn is a columnin the AttachSummary, read the
`AttachSummary from the Catalog database
`Build the SortKey
`Update Shortcut in Catalog database
`
`*
`*
`
`Set FolderSortColumn
`Set FolderSortDirection
`
`FIG. 15
`
`020
`
`020
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 20 of 33
`
`US 6,725,228 BI
`
`Containsall tables and fields of Base Layer, plus the following:
`
`a
`
`
`
`a0
`
`
`
`
`
`
`
`
` MessageSummary
`
` Direction
`SendState
`
`IsDeleted
`IsActive
`IsKept
`IsTagged
`
`IsToDo
`
`
`
`KeywordList
`
`Folder
`
`SearchCriteria
`
`FIG. 16
`
`021
`
`021
`
`

`

`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
`
`022
`
`022
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 22 of 33
`
`US 6,725,228 BI
`
`Containsall tables and fields of Base Layer and SecondLayer, plus the following:
`
`Folder
`
`
`56
`
`37
`
`IsPendingCorresp
`
`
`AddressList
`
`
`
`
`
`Address
`58
`MessageSummary
`52 AttachSummary
`AddressId
`
`Folderld
`AddressString
`AddressType
`IsPendingCorresp
`
`AlternateKey1
`= AddressString
`(uppercase)
`
`AlternateKey2
`= Folderld
`
`FIG. 18
`
`023
`
`023
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 23 of 33
`
`US 6,725,228 B1
`
`Containsall Folders in Base Layer and Second Layer, plus the following:
`
`<Root>
`|--- Correspondents
`|
`|--- Me
`|
`|--- * Automatically created Correspondentfolders
`|
`|--- * User created Correspondentfolders
`
`||
`
`|
`|
`
`--- Bulk Mail
`|--- Unsorted
`|--- * User created Bulk Mail folders
`
`FIG. 19
`
`024
`
`024
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 24 of 33
`
`US6,725,228 BI
`
`Includes all Requests and Events in Base Layer and Second Layer, plus the following:
`
`24
`
`29
`
`27
`
`MessageStore Server
`
`Catalog Server
`
`Message Client
`
`IncomingRequests
`
`AddMyAddress—————
`
`ReadFolderAddresses-———_e
`
`MoveAddress-—————
`
`ProcessAddressQueue——@
`
`FIG. 20
`
`025
`
`025
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 25 of 33
`
`US 6,725,228 B1
`
`AddressEntry
`
`AddressArray /
`
`——/
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 21A
`
`Phase 1 Processing
`
`218
`ae
`
`StateCounters ;
`OriginCount
`
`ToCount
`
`ShortcutCount
`
`
`
`
`
`
`
`wee ee em em wee ee a a a ar nr ar nr an nen ee ee = 1
`Star $ IncrementIF ( AddressRole = arTo )
`|
`-
`
`FIG. 21B
`
`026
`
`026
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 26 of 33
`
`US 6,725,228 BI
`
`Phase 1 Processing
`
`Set to True
`|
`IF
`(Direction = drSend )
`|
`i
`/\ AND ( AddressType = atMyAddress _)
`|
`|
`AND( AddressRole = arFrom )
`Fa
`gf meee iaeeeies
`/
`Set to True
`IF
`(Direction = drReceive )
`|
`_-~ | AND ( AddressType = atMyAddress )
`AND( AddressRole = arTo OR arCc OR arBcc )
`
`|
`|
`3
`
`-
`
` ne a em ete eee eee ee zt
`
`~.L_iSettoTue ti(‘“‘sOSO™S™*~*~*~™” |
`|
`IF ( AddressType = atBulkAddress )
`4
`ec err eee wy ee en eee rie ee ee i
`™“ ~ Pisa er eee eee ee een eer ene ea ee eee ee oa|
`
`Sot Set to True
`\
`\
`1
`IF
` (AddressType = atCorrespAddress )
`
`‘. |__AND ( AddressRole = ( arSender OR arFrom ) )
`\
`Ni Poe ee ee etsAetem ete vere eine year mnie ee ie
`
`|
`\ | Set to True
`\
`IF
` (AddressType = atCorrespAddress )
`AND ( AddressRole = ( arTo or arCc or arBcc) )
`|
`a ae med ame aeS ee ea
`
`FIG. 21C
`
`027
`
`027
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 27 of 33
`
`US 6,725,228 BI
`
`Input Parameters
`= MessageSummary
`
`Get next elementin
`MessageSummary's AddressList
`
`225
`
`Yese{
`
`To Phase 2
`
`No
`
`Initialize AddressEntry and add to
`AddressArray
`
`
`
`Increment StateCounters
`
`Read Address from Catalog
`database
`
`: 229
`
`Add Address information to
`AddressEntry
`
`Set StateFlags
`
`FIG. 22
`
`028
`
`028
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 28 of 33
`
`US 6,725,228 BI
`
`236
`
`
`
`
`
`
`From Phase 1
`
`Get next AddressEntry in
`AddressArray
`
`
`
`
`End of
`Array?
`
`
`
`No
`
`
`
`Apply Corresp/Bulk Mail Rules to
`AddressEntry as shownin FIG. 24
`
`Yes
`
`239
`
`Create
`Shortcut?
`
`
`
`
`
`
`
`
`
`IF ( AddressId = 0
`
`29K 240
`Do "AddAddressFolder"
`Yes
`as shownin FIG. 25A
`
`Yes
`
`Do
`"UparadePendingCorresp" }«—Yes
`as shown in FIG. 25B.
`
`
`
`Create ,
`Address?
`
`
`IF
`(IsPendingCorresp)
`241A sad
`
`iy
`AND ( IsConfirmedCorresp)
`
`
`
`*
`
`
`
`
`Do “AddChangeShortcut" as
`shown in FIG. 10B.
`Increment ShortcutCount
`
`*
`
`
`
`243
`
`Paried’
`*
`
`Add Shortcut to Unsorted Folder
`Set IsBulkMail to True
`
`Non-zero
`
`Set MessageSummary IsCorresp
`to NOT IsBulkMail
`
`
`
`
`
`
`FIG. 23
`
`029
`
`029
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 29 of 33
`
`US 6,725,228 Bl
`
`( IsBulkMail )
`(IF
`| AND ( AddressType = atBulkAddress )
`[IF
`( IsBulkMail ) AND ( IsToMe)
`| AND ( IsFromKnownCorresp )
`AND ( Direction = drReceive )
`, AND ( AddressType = atCorrespAddress )
`| AND ( AddressRole = ( arSender OR arFrom) )
`
`vese(T08)
`
`vese{To)
`
`vese(T0°)
`
`(FIG. 248)
`
`(FIG. 248)
`
`(FIG, 248)
`
`
`
`
`
`CD
`
`iF ( IsBulkMail ) AND ( IsFromMe )
`' AND ( IsToKnownCorresp )
`| AND( Direction = drSend )
`| AND ( AddressType = atCorrespAddress )
`AND( AddressRole = ( arTo OR arCc ORarBec ) i»
`eae ae eae ee ee ae ee ern ne ne ee eee 1
`IF(IsBulkMail )aa i i ee ee ee ee _
`
`
`
`veseffo)
`
`(FIG. 248)
`
`(FIG. 24B)
`
`(FIG. 24B)
`
`(FIG. 24B)
`
`3 “
`
`Y
`
`© “ “
`
`“@
`
`(FIG. 24B)
`
`
`
`
`IF ( Direction = drSend )
`|AND ( AddressType = atMyAddress )
`
`'IF (Direction = drSend)
`) AND ( AddressType = atNoAddress )
`1 AND ( OriginCount = 1 )
`AND( AddressRole = arFrom )
`
`( Direction = drSend )
`|Rig
`| AND ( ToCount = 1)
`: AND ( AddressRole = arTo )
`{IF
`( Direction = drSend )
`AND( AddressRole = ( arTo OR arCe OR arBec )) |
`
`[IF (Direction=drReceive)AND(IsToMe)
`AND ( AddressRole = ( arSender OR arFrom ) )
`
`030
`
`IF ( Direction = drReceive )
`| AND ( NOT IsToMe)
`,; AND ( IsFromKnownCorresp )
`(FIG. 248)
`vese(fod)
`| AND ( AddressType = atCorrespAddress )
`| AND( AddressRole = ( arSender OR arFrom))
`
`(IF (Direction = drReceive ) AND(IsToMe )
`

`AND ( AddressType = atMyAddress)
`Y
`(FIG. 24B)
`
`030
`
`

`

`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 FolderId to "Me" folder.
`
`FIG. 24B
`
`031
`
`031
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 31 of 33
`
`US 6,725,228 B1
`
`AddAddressFolder
`
`
`
`
`
`
`Build Folder as follows:
`
`
`-- Set FolderName from AddressName, or from
`AddressString if AddressName is empty.
`
`-- Set FolderType 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
`Input Parameters
`database
`No
`= AddressEntry
`*
`Save FolderId to AddressEntry
`
`Generate FolderAdded Event
`
`
`Read Folder from
`Catalog database
`
`
`
`*
`Build Address from AddressEntry
`
`Set AddressType based on FolderType
`*
`
`ftMe
`--> atMyAddress
`ftCorresp --> atCorresp
`
`
`ftBulkMail --> atBulkMail
`« Add Address to Catalog database
`
`
`
`FIG. 25A
`
`UpgradePendingCorresp
`
` *e#8@@
`
`
` Read Folder from Catalog database
`Set IsPendingCorresp to False
`
`Do "UpdateFolder” as shownin FIG.1D,
`
`Read Address from Catalog database
`
`Set isPendingCorresp to False
`
`Input Parameters
`Update Address in Catalog database
`
`= AddressEntry
`
`FIG. 25B
`
`032
`
`032
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 32 of 33
`
`US 6,725,228 B1
`
`Input Parameters
`= AddressString
`+ TargetFolderld
`
`TargetFolderId =
`Folderld of "Unsorted"?
`
`Delete Address
`from Catalog
`database
`
`Update Address in Catalog database
`
`Set FolderId in Address to TargetFolderld
`Read TargetFolder from Catalog database
`Set AddressType based on TargetFolder’s
`FolderType
`--> atMyAddress
`ftMe
`ftCorresp --> atCorresp
`ftBulkMail --> atBulkMail
`Set IsPendingCorresp in Address from
`TargetFolder
`
`Read Address from
`Catalog database using
`AlternateKey1
`
`Add AddressString
`to AddressQueue
`
`033
`
`033
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 33 of 33
`
`US 6,725,228 B1
`
`database if IsCorresp has changed
`
`Position to first MessageSummary
`in Catalog database
`
`Get next MessageSummary in
`Catalog database
`
`DoesanyAddressStringin
`
`the AddressQueue match
`an AddressString in the
`MessageSummary
`AddressList?
`
`“"
`
`No
`
`Empty
`AddressQueue
`
`Process Shortcuts as shownin FIG. 10B
`*
`* Update MessageSummary in Catalog
`
`FIG. 27
`
`034
`
`034
`
`

`

`US 6,725,228 B1
`
`1
`SYSTEM FOR MANAGING AND
`ORGANIZING STORED ELECTRONIC
`MESSAGES
`
`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.
`BACKGROUNDOF THE INVENTION
`
`2
`Further, once an e-mail message has been received it can
`be difficult to find the messagelater, 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
`lime 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 ofelectronic
`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 lotof 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 asaseries of
`Electronic messaging, which includes electronic mail (or
`instructions against which each message is evaluated. If the
`“e-mail”) messaging, is now an accepted, and some would
`number of rules exceeds a relatively small number the
`say vital, medium for business and personal communica-
`overall
`rule set becomes very difficult
`to understand.
`tions. The rapid growth of electronic messaging is expected
`Another disadvantageis that rules must be created manually
`to continue. This growth brings an increasingly serious ,
`and can involve a significant amountof effort if a user wants
`problem of how to managethe volume of messages. Accord-
`to organize their messages in a thorough manner, such as by
`ing toa 1998 Pitney Bowessurvey, 71%of respondents said
`correspondent. A further disadvantage is that e-mail systems
`they felt overwhelmed by the number of messages they
`which apply filtering rules are typically restricted by the
`receive. This problem is becoming more severe. John
`folder/message model and cannot organize a message into
`Dvorak,a frequent writer on the topic of computing states in
`multiple folders without creating multiple copies of the
`PC Computing magazine that“ ....we have poortools to sort
`message. As a result of the foregoing disadvantages many
`and organize (or even find) the e-mail we collect”.
`users do not bother to set up such rules. Even whenthe rules
`Electronic messages, which may include attachments of
`have been set up they act only when a message is sent or
`diverse kinds, are sent and received through the use of
`received. Such rules are incapable of managing messages
`messaging software. For example, e-mail messages are sent
`after they have been received or sent.
`and received by e-mail software such as Microsoft’s OUT-
`Other features which software vendors have provided in
`LOOK™ or Netscape’s COMMUNICATOR™. Other
`an attempt to help users organize their messages are key-
`widely used types of electronic messaging are voice mail,
`words(also referred to as “categories”), tags (also referred
`fax and instant messaging. The vast majority of current
`to as “flags”), searching tools, and links to other objects such
`messaging software is based on design principles that origi-
`as task lists. While these features improve the manageability
`nated when message volumes were low. Current e-mail
`of e-mail they are less powerfulthan filtering rules and have
`software, for example, provides rudimentary features for
`proven inadequate for dealing with higher message volumes.
`organizing e-mail messages (both incoming and outgoing)
`into various folders. The most basic model saves received
`Keywords and tags let
`a user highlight and identify
`messagesto distinguish them from other stored messages. A
`messages in an Inbox folder, messages waiting delivery in an
`major drawback to these mechanismsis that the highlighted
`Outbox folder, and sent messages in a Sent Messagesfolder.
`messagesare visible only in the folder to which the message
`Users can create additional user folders to which they can
`belongs. The value of these mechanisms is significantly
`move or copy messages. Refinements to this basic model
`reduced because there is no fast and convenient way to
`include providing additional system folders such as Drafts
`locate all tagged messages or all messages that have been
`and Wastebasket folders. In general, the user is responsible 5
`assigned a given keyword.
`for moving e-mail messages between folders and for man-
`aging the messages once they have been placedinto a folder.
`in dealing with large
`tool
`Searching is an important
`This can be an onerous responsibility, especially in cases
`message volumes. Traditional sequential search techniques
`where the user receives large volumes of e-mail messages as
`are usually too time-consuming to make them very useful
`may easily occur, for example, if the user subscribes to one s
`for larger message stores. As a result, there have been recent
`or more high volume mailing lists.
`efforts to provide systems which implementfull-text index-
`A fundamental weakness ofthis folder/message model is
`ing and retrieval capabilities for message stores. While
`that a message can only exist in a single folder at a time.
`searching is an important technique for finding previously
`While a user can place copies of e-mail messages into
`sent or received messages,
`it is not particularly useful or
`multiple folders the user must manage the copies separately.
`efficient for dealing with messages as they are received and
`If the user wishes to see a message in multiple folders, then
`then handled by the user. A search must be performed cach
`he or she must make multiple copies of the message, which
`lime a user wishes to access messages which match a
`results in using additional storage space and in creating more
`particular set of search criteria. The user is generally forced
`messages that need to be managed. This model also requires
`to manually enterthe search criteria. Once a search has been
`that the user manually organize each message. This can lead
`run the results of the search may be placed into a separate
`to cluttered folders and a general lack of organization in the
`“search results” folder (in addition to the folder in which the
`stored e-mail messages that a user accumulates over time.
`original message resides). Search results folders are not
`
`30
`
`35
`
`40
`
`45
`
`60
`
`65
`
`035
`
`035
`
`

`

`US 6,725,228 B1
`
`3
`generally useful for organizing electronic messages because
`of their limited capabilities. Such folders cannot form the
`basis for a more general purpose solution for organizing
`messages into multiple folders. For example the Microsoft
`Platform SDK describes some limitations of MAPI search
`results folders as follows:
`
`The only way that the contents of a search-results folder
`can be modified is through the IMAPIContainer::Set-
`SearchCriteria call;
`Messages cannot be moved or copied into or out of
`search-results folders; and,
`Search-results folders cannot contain subfolders.
`Some software packages allow objects to be linked to
`gone another. For example, Microsoft Outlook 2000 has a
`task list. A user can add a shortcut to an electronic message
`to a task. Outlook 2000 does not provide any facilities to act
`on the message to which the shortcut refers. The Outlook
`2000 task list is not flexible enough for use in the effective
`organization of electronic messages.
`A number of attempts have been made to overcome
`problemsassociated with the current folder/message model.
`These include U.S. Pat. No. 5,948,058, Kudoh et al., which
`describes a method for cataloging a message into multiple
`categories. An array of bitmaps in the message is used to
`identify the categories to which a message belongs. This is
`a very simple implementation that would have serious
`performance problems when searching forall messages that
`belong to a category—all messages in the message store
`would need to be examined.
`U.S. Pat. No. 6,029,164, Birrell et al., describes a method
`for adding labels to messages which are then indexed by a
`full-text
`index and retrieval engine. An advantage of the
`Birrell et al. system over the system of Kudoh et al. is that
`it provides a rapid global search capability for finding
`messages with the desired label, and provides the ability for
`the user to add, modify or delete labels. Some disadvantages
`of the Birrell et al. system are that messages are processed
`in batches (for performan

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