throbber
(12) United States Patent
`Clark et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,725,228 B1
`Apr. 20, 2004
`
`US006725228B1
`
`(54) SYSTEM FOR MANAGING AND
`ORGANIZING STORED ELECTRONIC
`
`MESSAGES
`
`(76) Inventors: David Morley Clark, 920 Innes Street,
`Nelson British Columbia VlL 5T2
`_
`’
`_
`_
`(c_A)> Thomas Wllson Qlbson, 230_
`gllgLhfztrgeitégel?m grit/i511 lfiirlmbla
`;
`avi
`itc e
`Bracewell, 708 Third Street, Nelson,
`British Columbia V1L 2R2 (CA); Je?
`Toy Tsa0 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(k)) by 212 days_
`
`(21) APPL NO: 09 /704’199
`
`O t. 31 2000
`22 F1 d:
`c
`’
`(
`)
`1 e
`(51) Int. Cl.7 ................................................ .. G06F 7/00
`(52) US. Cl. .......................................... .. 707/102; 707/7
`(58) Field of Search .............................. .. 707/7, 200, 2,
`707/102
`
`6,167,402 A * 12/2000 Yeager ...................... .. 707/10
`6,182,071 B1 * 1/2001 Fushimi ....................... .. 707/7
`
`. . . .. 707/3
`6,226,630 B1 * 5/2001 BIIIIIl'CIS . . . . . .
`707/500
`6,324,569 B1 * 11/2001 Og1lv1e et a1.
`709/206
`6’396’513 B1 : 5/2002 Helfman et a1‘ '
`6,424,995 B1
`7/2002 Shuman .................... .. 709/206
`6,449,615 B1 * 9/2002 Liu et a1. .................... .. 707/10
`6,466,941 B1 * 10/2002 Rowe et a1. .
`707/102
`6,507,846 B1 * 1/2003 Consens ................... .. 707/100
`FOREIGN PATENT DOCUMENTS
`WOW/04344
`1/1999
`
`EP
`
`OTHER PUBLICATIONS
`
`Microsoft Internet Explorer 1995_2001~T
`Dvorak, John C., Scarter 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 L~ibrary—Apr.~1999, Messaging API (MAPI), Legal
`Information, Developing a Message Store Provider.
`
`* cited by examiner
`'
`~
`_
`_
`Primary EXam”_1@r—K1m V11_ _
`Assistant Examiner I'IOnp1a_1S1r Hamllton _
`(74) Attorney, Agent, or Fzrm—Oyen, Wiggs, Green &
`Mutala
`
`
`
`References U'S' PATENT DOCUMENTS
`
`A computer-based system catalogs and retrieves electronic
`
`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
`57377354 A * 12/1994 Scannell ct a1~
`2
`g/
`lvagali
`"""""""""" " 707”
`5’548’789 A
`Q1996 Ni‘ltgnuiga'
`5:615:367 A * 3/1997 Bennett et a1‘ ~~~~~~~~~~~ “ 7O7/1O2
`5,694,616 A * 12/1997 Johnson et a1.
`709/207
`5,813,009 A * 9/1998 Johnson et a1. ........... .. 707/100
`5,899,995 A
`5/1999 Millier et 81,
`5,948,058 A * 9/1999 Kudoh et a1. .......... .. 707/104.1
`6,009,442 A 12/ 1999 Chen et 91-
`670297164 A
`2/2000 Blnell et al-
`6,057,841 A * 5/2000 Thlérlow et a1‘
`6,073,131 A
`6/2000 R0~ erti ........................ .. 707/7
`6,073,142 A * 6/2000 Geiger et a1. ..
`707/500
`6,088,696 A * 7/2000 Moon et a1.
`.. 707/10
`6,154,740 A * 11/2000 Shah ........................... .. 707/7
`
`60
`
`6e
`
`/
`EmaDganize!
`Help
`File
`Edit
`view] Touts
`H0‘
`Shh/5 T0 Name
`
`II a
`
`a4
`
`65
`
`66
`
`W \ \
`\
`\
`\
`\
`\
`\
`
`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
`tamollsly The System Preferably permlts messages tqbe
`organlled byi 1) baslc message and attachment Propemes,
`eg 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
`
`X
`
`Date
`
`_
`
`51 -\v
`
`I _ _
`
`7: : - :
`
`Fmm
`SZDIM
`
`\
`
`Actwe Mail (14)
`To Do (4)
`
`614 81223111“
`YesterdaHG)
`Thisweek
`Elizabelh Green (2)
`eonsexrem)
`
`T’Iifljliem
`
`x45 Study<keyworl1> -—
`
`52C 0 H13 Status \Gnvrespondeml Bulk Mail | Keyvmm | Dale | AaeenmemH Search | User
`
`625 J
`
`69
`
`,1
`
`Page 1 of 57
`
`Samsung Exhibit 1007
`
`

`

`U.S. Patent
`US. Patent
`
`Apr. 20, 2004
`Apr. 20, 2004
`
`Sheet 1 0f 33
`Sheet 1 0f 33
`
`US 6,725,228 B1
`US 6,725,228 B1
`
`
`
`FIG. 1A
`FIG. 1A
`
`Page 2 of 57
`
`Page 2 of 57
`
`

`

`U.S. Patent
`US. Patent
`
`Apr. 20, 2004
`Apr. 20, 2004
`
`Sheet 2 0f 33
`Sheet 2 0f 33
`
`US 6,725,228 B1
`US 6,725,228 B1
`
`E f E ............. --®
`
`
`
`E 5%
`w @ mi E
`@
`
`FIG. 1B
`FIG. 13
`
`Page 3 of 57
`
`Page 3 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 3 0f 33
`
`US 6,725,228 B1
`
`251
`User Interface Device
`
`20\
`
`27 1 Message Client
`
`a‘?
`a?
`q_
`
`*5
`3
`8
`a:
`
`26 W
`
`Transport
`Server
`
`Events
`
`Requests
`
`Message Store
`Server(s)
`
`Incoming Events
`
`Catalog Server
`
`Outgoing Requests
`
`291
`
`14
`
`FIG.
`2
`
`Page 4 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 4 0f 33
`
`US 6,725,228 B1
`
`32
`
`/ -
`
`ReceiveDate: Today 10:10:05 Hg.“ 4’ I'" This Week
`Direction: Received
`\\ ‘+ |--- Thls Month
`\ Status
`\\ |--- Received
`0~\_\ Correspondent
`|--- Tom Gibson
`
`Envelope
`From: Tom Gibson
`To: David Clark
`Cc: David Bracewell
`
`36 l Contents
`
`Subject: White paper
`Body:
`Here is the white paper
`Attachment
`for your review.
`36A K_Attachment: White Paper.doc H” I
`gllo'éttachments
`
`34 1 Status & Orgamzatronal
`Information
`
`Status: IsUnread
`
`stziitusU
`
`d
`
`4> --- nrea
`.
`
`.
`
`Keywords: Marketing
`White Paper
`
`0‘
`
`4-’ |"' ACtIVE Keywords
`0——_\:\> |—-- Marketing
`H |--- White Paper
`
`
`
`33 \_ Transport Header Jalti Tcday
`
`Page 5 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 5 0f 33
`
`US 6,725,228 B1
`
`18 1
`
`25 T
`
`User
`Interface
`Dev'ce
`
`29
`1 Catalog
`server
`:
`Message
`Store
`24 J Server(s)
`
`Catalog
`database
`
`\—-/
`
`23
`
`Store(s)
`
`CLIENT COMPUTER
`
`40A -/
`
`FIG. 4A
`
`12
`
`28
`
`18 1
`
`25 i
`User
`Interface
`Device
`
`27 1
`Message
`-
`chant
`
`14
`
`Network
`
`CLIENT COMPUTER
`
`24
`
`4081
`
`FIG. 4B
`
`Catalog
`database
`-
`Message v
`Store
`Message
`Server(s)
`Store(s)
`23
`
`SERVER COMPUTER
`
`18 1
`
`25 T
`User
`Interface
`Device
`
`27
`
`M3322?
`
`14
`
`12 x
`
`/"
`
`g
`Catalog
`database
`2s
`
`29
`
`24 “N
`Message
`store
`Server(s)
`
`Message
`Store(s)
`23
`
`CLIENT COMPUTER
`
`SERVER COMPUTER
`
`FIG. 4C
`
`Page 6 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 6 0f 33
`
`US 6,725,228 B1
`
`28 _\
`
`Catalog
`
`Folder
`Address [- 58
`AddressId 2% FolderId
`
`[- 56
`
`Shortcut [- 57
`rtis?gld
`Foldcerld
`
`51
`StoreLink [-
`storeunkld
`storeId (FK)\
`\ 51A
`
`52
`
`Messa S
`9e “mmary
`Messageld
`StoreLinkId (FK)/
`Messa eId FK
`store
`9
`( K 52A
`
`_ 52B
`
`AttachSumma
`ry
`
`53
`
`Messageld
`hm (FK)
`C
`L 53A
`
`OF
`
`23 _\
`
`Storeld
`
`Message Store
`
`[- 54
`Message
`StoreMessageId
`<message data>
`
`[- 55
`
`Attachment
`StoreAttachId
`<attachment data>
`
`FIG. 5A
`
`Page 7 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 7 0f 33
`
`US 6,725,228 B1
`
`50 —\
`
`Catalog / Message Store
`
`Address [' 58
`AddressId
`
`/
`
`Folder [‘ 56
`FolderId
`
`Shortcut f 57
`Messageld
`Attachld
`FolderId
`
`MessageSummary
`MessageId
`
`52'
`
`AttachSummary 53'
`MessageId
`/ AttachId
`
`54'
`/—
`
`M
`“sage
`Messageld
`<message data>
`
`[- 55'
`
`Attachment
`Messageld
`AttachId
`<attachment data>
`
`FIG. 5B
`
`Page 8 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 8 0f 33
`
`US 6,725,228 B1
`
`60x
`
`[68
`I
`Email Orlqanizer
`Help
`File
`Edit
`View I Tools
`Ii]
`Hot
`Status I To [Name
`
`64x 65x 66X
`\
`\
`\
`\ ‘Subject \
`\
`
`61X__
`
`______
`
`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>
`Ul <keyword>
`X45 Study <keyword>
`
`From:
`Subject:
`
`[Date
`
`—
`
`\
`
`62C —\—HoJ Status ICorrespondentl Bulk Mail 1 Keyword I Date 1 Attachment! ‘ Search 1 User
`15‘ msgs of 100
`L 69
`
`628 J
`
`FIG. 6
`
`62A J
`
`67 J
`
`62
`
`Page 9 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 9 0f 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
`
`74X
`
`SECOND LAYER - Applications of Lightweight Message Shortcuts
`Automatic organization by Status
`Automatic organization by Date
`Automatic organization by Attachment
`Automatic organization by user assigned Keyword
`Improved manual organization in user created folders
`Improved ?ltering mechanisms
`Improved handling of search results
`
`BASE LAYER - Base Services
`Catalog database
`Uni?ed 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 contenG
`
`FIG. 7
`
`Page 10 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 10 0f 33
`
`US 6,725,228 B1
`
`AlternateKeyl
`= ParentFolderId
`
`AlternateKeyZ
`= ParentFolderId
`+ FolderName
`(uppercase)
`
`A|ternateKey3
`= IsHot
`
`Folder
`FolderId
`ParentFolderId
`FolderName
`fg?rTvpe
`_
`
`Shortcut
`MessageId
`AttachId
`FolderId
`SortKey
`/ SortColumn
`
`57
`[_
`
`AlternateKeyl
`= FQIderId
`+ SortKey
`
`.
`.
`F
`OIdEI'SOI’tDII'ECtIO?
`
`ShortcutCount
`UnreadCount
`CorrespShortcutCount
`UnreadCorrespCount
`
`TriggerAction
`TnggerDateTlme
`-
`-
`IsUnread
`lscorres
`I U rshlzrtcut
`5 Se
`
`= Tl'iggerDateTime
`
`52
`
`i
`M
`essageSummary
`MessageId
`FolderExcIudeList
`IsUnread
`'
`IsCorresp
`MessageDateTnme
`DisplayNames
`Subject
`
`Attachsummaryf 53
`Messageld
`Attachld
`\ AttachType
`AttachName
`AttachSize
`
`FIG. 8
`
`Page 11 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 11 0f 33
`
`US 6,725,228 B1
`
`24W
`
`Message Store Server
`
`291
`
`Catalog Server
`
`Inggming Eventg
`
`o———MessageAdded—-—>
`0——MessageChanged———>
`e———MessageDeleted—->
`
`W
`
`4———ReadMessage———-o
`
`Message Client
`
`Ingoming Reguegg
`
`<-——--AddFolder-—-——0
`<-———ChangeFo|der———-o
`<--——De|eteFolder———0
`<—-——ReadFo|der-—-—o
`<-—ReadFo|derSubtree—-0
`<———ReadHotFolders-——o
`<——ReadFo|derContents——o
`<-—ChangeFoIderSortKey—-—o
`4—-AddShortcut———-—0
`<-——DeleteShortcut-——o
`<—DeleteFolderShortcuts—-o
`<——ReadMessageSummary—-o
`4~—ReadAttachSummary——o
`
`Qutgoing Events
`
`FolderAdded——>
`FoIderChanged——->
`FolderHotChanged—->
`FolderDeleted-—>
`ShortcutAdded-———>
`ShortcutDeleted———>
`ShortcutSortKeyChanged—>
`SummaryChanged——>
`
`FIG. 9
`
`Page 12 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 12 0f 33
`
`US 6,725,228 B1
`
`ShortcutEntry
`ShortcutAction
`Excluded
`OldShortcut
`
`Shortcut
`[ AttachSummary ]
`
`Memory structures
`
`100 W
`ShortcutArray
`
`100A
`
`FIG. 10A
`
`101 W
`
`Input Parameters
`= MessageSummary
`
`102 X Read all Shortcuts for Message. Save each Shortcut as an OldShortcut
`object in ShortcutArray with ShortcutAction of saDelete.
`
`103 —1_
`
`104 1
`
`l
`Execute Second Layer 2 Automatic Organization Rules
`(which use "AddChangeShortcut" to create Shortcuts)
`
`l
`Execute Second Layer Filter Rules
`(which use "AddChangeShortcut" to create Shortcuts)
`l
`
`105 1 Execute Third Layer Correspondent and Bulk Mail Rules
`(which use "AddChangeShortcut" to create sholtcuts)
`l
`106 1 For each element in FolderExcludeList, do "ValidateFolderListElement".
`If valid element, set Excluded ?ag in matching ShortcutEntry to True.
`l
`
`107 1 Process each ShortcutEntry as shown in FIG. 11A.
`
`FIG. 10B
`
`Page 13 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 13 0f 33
`
`US 6,725,228 B1
`
`AddChangeShortcut
`
`Input Parameters
`Z rgiiggm
`Search ShortcutArray for J_ 103
`+ Folderld
`matching Shortcut or
`+ TriggerAction @—> OldShortcut (using
`+ TriggerDateTime
`MessageId + AttachId +
`FolderId as search key)
`+ IsUserShortcut
`
`Add ShortcutEntry to J- 108A
`ShortcutArray. Set <-——Yes
`ShortcutAction to saAdd.
`
`108C
`{-
`"
`Build Shortcut object in ShortcutEntry,
`using info from Input Parameters.
`
`‘
`
`_,~ 1088
`
`Set ShortcutAction
`to saKeep.
`
`FIG. 10C
`
`ValidateFolderListElemen
`
`@ Read Folder from Catalog
`
`database
`
`V
`If FolderDateTime in element
`doesn't match value in
`Folder, delete element from @
`FolderExcludeList
`
`FIG. 10D
`
`Page 14 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 14 0f 33
`
`US 6,725,228 B1
`
`110 \
`
`Input Parameters
`= ShortcutEntry
`
`(- 111
`
`Read Folder from Catalog
`database
`
`saAdd
`
`Excluded,
`'
`
`Yes
`
`saKeep
`
`DeleteShortcut
`
`(- 114
`
`-
`
`-
`7
`'
`
`-
`
`With OldShortcut, do
`"DecrementFolderCounts"
`(FIG. 11B)
`Delete Shortcut from
`Catalog database
`Generate ShortcutDeleted
`Event
`Do "UpdateFolder" (FIG.
`118
`)
`
`N°
`
`r- 113
`
`v UpdateShortcut
`
`No
`
`cut" (FIG f- 112
`‘
`
`-
`
`‘Ad
`11B)
`w‘ h Sh rtc t, d
`nlrlitcremgnté'oldefcountsu
`(FIG 11B)
`'
`22:52:)?“ t° Catabg
`Generate ShortcutAdded
`Event
`. Do "UpdateFolder" (FIG.
`
`_
`
`-
`
`-
`-
`
`-
`
`-
`
`-
`-
`
`-
`
`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)
`
`‘V
`
`r_ 115
`
`m Set ShortcutTimer as shown in FIG. 13 —
`
`FIG. 11A
`
`Page 15 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 15 0f 33
`
`US 6,725,228 B1
`
`BuiIdShortcut
`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
`
`Page 16 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 16 0f 33
`
`US 6,725,228 B1
`
`SHORTCUT STRUCTURE
`
`FLAGS ENCODING
`
`Byte
`Offset Length Field
`0
`4
`MessageId
`4
`2
`AttachId
`6
`4
`FolderId
`10
`6
`SortKey
`16
`1
`SortColumn
`17
`1
`TriggerAction
`18
`4
`TriggerDateTime
`22
`1
`Flags
`23
`1
`IsCorresp
`
`Bit
`O
`1
`2
`
`Length Field
`1
`SortDirection
`1
`IsUnread
`1
`IsUserShortcut
`
`FIELD TYPE
`
`SORT KEY FORMAT
`
`Notes
`
`_
`_
`Umcodestrmg
`
`UCW1
`I
`
`UCW2
`l
`
`UCW3
`l
`
`Unicode Character Weights of
`?rst 3 characters of string.
`
`AnsiString
`
`C1
`
`Values of
`string.
`
`6 Characters of
`
`
`
`DateTime Enumeration OR
`
`YY
`
`mm 55 W : Year _
`
`
`
`Boolean (sdDescending)
`
`
`
`Value |
`
`YY
`
`YY : Year _
`
`Enumeration OR
`Boolean
`(sdAscending)
`
`va'ue
`I
`
`FY53
`
`_2;D5
`
`YY = Year - 1950
`
`mega’32 OR
`Integerm
`
`--------------- Bits ------------ --
`31-24l 23-16‘ 15-sl 7-0
`
`Not Used
`I
`
`Bits are numbered with 0 being
`the least signi?cant and 31 the
`most signi?cant.
`
`FIG. 12
`
`Page 17 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 17 0f 33
`
`US 6,725,228 B1
`
`130 w
`
`Startup
`Processing
`
`J- 132
`Initialize ShortcutTimer
`to inactive state
`
`l
`J- 133
`Read ?rst Shortcut
`from Catalog database
`using AlternateKeyZ
`
`135
`AddChange
`Shortcut
`
`If TriggerDateTime is non-zero and is
`less than ShortcutTimer, reset
`ShortcutTimer to TriggerDateTi me
`
`137
`Shortcut
`Timer
`
`Read Shortcut from Catalog database
`If TriggerAction is taDeleteShortcut then
`generate an internal DeleteShortcut Request.
`
`J- 138
`
`FIG. 13
`
`Page 18 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 18 0f 33
`
`US 6,725,228 B1
`
`140 x
`
`Request Parameters
`= FolderId
`+ SortKey
`+ SortDirection
`+ Requestcount
`+ CorrespOnly
`
`N0
`
`[- 143
`
`SdAS¢§nding [- 143A
`
`[- 1438
`
`ugirigléjegdsaertld
`position on Shortcut
`A'temateKeYl
`
`Position at ?rst
`Shortcut in Folder
`using AlternateKeyl
`
`Position at last
`Shortcut in Folder
`using AlternateKeyl
`
`W Read Next/Prev Shortcut in Folder ‘
`
`(depending on SortDirection)
`
`[- 145A
`
`Set IsEOF to
`True
`
`145
`
`Yes
`
`End of
`Folder?
`
`Is (CorrespOnly = True)
`AND (IsCorresp = False) ?
`
`"
`
`YES
`
`Enough?
`
`15(C0ntentcount >=
`RequestCount) AND
`(Current SortKey NOT =
`Previous SortKey)?
`
`147
`
`Sort ContentArray in __f_ 149
`memory, using values
`from MessageSummary
`and AttaChSUmmaFY
`
`~
`
`-
`
`_
`I'- 148
`l
`BulldReP'Y
`-
`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
`
`Page 19 of 57
`
`

`

`U.S. Patent
`
`Apr. 20, 2004
`
`Sheet 19 0f 33
`
`US 6,725,228 B1
`
`150 w
`
`Request Parameters
`
`= FolderId
`
`+ FolderSortColumn
`+ FolderSortDirection
`
`Read Folder from Catalog J- 152
`database
`‘
`
`-
`
`-
`
`posltilgllg?jgs?ssiggrtcut J- 154
`A'temateKeYl
`
`L
`Read next Shortcut in Folder
`
`J- 155
`:
`
`1
`
`NO
`
`The underlying data type
`for the FolderSortColumn
`
`Enumeration
`OR Boolean
`
`Need to build SortKey if
`FolderSortColumn
`NOT = SortColumn
`OR FolderSortDirection
`NOT = SortDirection
`
`158A
`
`156
`
`157
`
`No
`
`Need to build
`SortKey if
`FolderSortColumn
`NOT = SortColumn
`
`-
`
`-
`
`'
`~
`
`If FolderSortColumn is a column in the MessageSummary, read
`the MessageSummary from the Catalog database
`If FolderSortColumn is a column in the AttachSummary, read the
`AttachSummary from the Catalog database
`Build the SortKey
`Update Shortcut in Catalog database
`
`J- 159
`
`derSortColumn
`Set Fol
`derSortDirection
`Set Fol
`Update Folder in Catalog database
`
`@
`
`FIG. 15
`
`Page 20 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 20 0f 33
`
`US 6,725,228 B1
`
`Contains all tables and fields of Base Layer, plus the following:
`
` Direction
` IsToDo
`
`AttachSummary
`
`53
`
`SendState
`IsDeIeted
`IsActive
`
`IsKept
`IsTagged
`
`KeywordList
`
`FIG. 16
`
`Page 21 0f 57
`
`Page 21 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 21 0f 33
`
`US 6,725,228 B1
`
`Root
`
`|--- Status
`|
`|--- Active Mail
`|--— Deleted
`|--- Drafts
`|--- Kept
`|--- Received
`|--- Sent
`|--- Tagged
`|--- To Do
`|--- Unread
`|--- Waiting Send
`
`| I I I I I I I I I I I I I I I I I I I I |
`
`--- 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
`
`Page 22 of 57
`
`Page 22 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 22 0f 33
`
`US 6,725,228 B1
`
`Contains all tables and fields of Base Layer and Second Layer, plus the following:
`
`Folder
`
`56
`
`57
`
`
`
`
` Address
`
`
` AddressList
`
`
`IsPendingCorresp
`
`AddressId
`
`FolderId
`
`AddressString
`AddressType
`IsPendingCorresp
`
`58
`
`MessageSummary
`
`52 AttachSummary
`
`53
`
`AlternateKeyl
`= AddressString
`(uppercase)
`
`AlternateKeyZ
`= FolderId
`
`FIG. 18
`
`Page 23 0f 57
`
`Page 23 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 23 0f 33
`
`US 6,725,228 B1
`
`Contains all Folders in Base Layer and Second Layer, plus the following:
`
`<Root>
`
`|--- Correspondents
`l
`|--- Me
`|
`|--- * Automatically created Correspondent folders
`|
`|-—- * User created Correspondent folders
`
`I |
`
`|
`|
`
`--- Bulk Mail
`|--- Unsorted
`|--- * User created Bulk Mail folders
`
`FIG. 19
`
`Page 24 0f 57
`
`Page 24 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 24 0f 33
`
`US 6,725,228 B1
`
`Includes all Requests and Events in Base Layer and Second Layer, plus the following:
`
`24
`
`29
`
`27
`
`Message Store Sewer
`
`Catalog Server
`
`Message Client
`
`Incoming Reguegs
`
`AddMyAddress—o
`
`ReadFolderAddresses—o
`
`MoveAddress——o
`
`ProcessAddressQueue—o
`
`FIG. 20
`
`Page 25 0f 57
`
`Page 25 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 25 0f 33
`
`US 6,725,228 B1
`
`Add ressEntry
`
`2 1 7
`AddressArray /\—/
`
`
`AddressRole
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG . 2 1A
`
`218
`
`_
`Phase 1 Processmg
`____ — — {IHcFer-ngnfi? UdErEsER-élg ; ?£;rs_e;d;r—OE;rFr;n: )_)— _ 1..J
`_ N
`F - - - — — — — - — - - - - — — — - — — — - - - - — - - — 1
`_l
`‘ * ‘ ~ J Increment IF ( AddressRole = arTo )
`I
`' —————————————————————————— — —
`
`FIG. 213
`
`StateCounters
`OriginCount
`ToCount
`
`
`
`ShortcutCount
`
`Page 26 0f 57
`
`Page 26 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 26 0f 33
`
`US 6,725,228 B1
`
`Phase 1 Processing
`
`:
`: Set to True
`,
`I
`IF
`( Direction = drSend )
`I
`,4 AND ( AddressType = atMyAddress )
`I
`'
`AND ( AddressRole = arFrom )
`l _ _ _ . . _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _J
`
`x
`
`/
`
`,
`
`219
`
`StateFlags
`
`/
`
`:
`: Set to True
`I
`J
`IF
`( Direction = drReceive)
`I
`// : AND ( AddressType = atMyAddress )
`AND ( AddressRole = arTo OR arCc 0R achc )
`l _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ J
`
`
`/
`
`
`
`
`
`
`IsBquMail
`
`ISFromKnowncorresp
`IsToKnownCorresp
`
`‘
`
`\
`
`r — — — — — — — — — — — — — — — — — — — — — - — — _ — — _ 1
`‘\\\ISettoTrue
`I
`:
`IF ( AddressType = atBulkAddress )
`J
`I — _ _ — — _ — ’ ~ _ _ — — _ _ — . _ — — ‘ — — — - _ ——'\
`I
`\
`\\ \ .SettoTrue
`\
`4
`IF
`(AddressType = atCorrespAddress )
`
`:I
`
`I
`
`1I
`
`I __________________________ _ _
`\\ I Set to True
`‘I
`IF
`(AddressType = atCorrespAddress )
`:
`AND ( AddressRole = ( arTo or arCc or achc ) )
`
`FIG. 21C
`
`Page 27 0f 57
`
`Page 27 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 27 0f 33
`
`US 6,725,228 B1
`
`Input Parameters
`= MessageSummary
`
`Get next element in
`
`MessageSummary's AddressList
`
`
`
`225
`
`Yes
`
`To Phase 2
`
`226
`
`Add Address information to
`AddressEntry
`
`Set StateFIags
`
`FIG. 22
`
`Page 28 0f 57
`
`Page 28 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 28 0f 33
`
`US 6,725,228 B1
`
`2
`
`From Phase 1
`
`Get next AddressEntrY in
`AddressArray
`
`Create
`Shortcut?
`
`(— 240"
`
`240
`
`Do "AddAddressFolder"
`as shown in FIG. 25A
`
`Yes
`
`Do
`"UpgradePendingCorresp"
`as shown in FIG. 253.
`
`Non—zero
`
`-
`
`-
`
`Do "AddChangeShortcut" as
`shown in FIG. IOB.
`Increment ShortcutCount
`
`-
`
`Add Shortcut to Unsorted Fo|der
`Set IsBulkMail to True
`
`Page 29 0f 57
`
`Page 29 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 29 0f 33
`
`US 6,725,228 B1
`
`L _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _. _ : IF
`Yes IAND (ToCount = 1 )
`
`FIG. 24B
`
`)
`
`(
`
`Yes».
`
`(FIG. 243)
`
`I
`{1? I EEuI—kfizIIIS/IND ( IsIFoF/IE)‘ ____ — _
`I
`I AND ( IsFromKnownCorresp )
`re
`:AND ( Direction = drReceive)
`I AND ( AddressType = atCorrespAddress)
`I AND ( AddressRoie = ( arSender OR arFrom) )
`L _ _ _ . _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
`
`II
`
`I
`l IF
`( IsBulkMail )AND ( ISFromMe )
`:
`: AND ( IsToKnownCorresp )
`i’
`|AND( Direction = drSend )
`I
`I AND ( AddressType = atCorrespAddress)
`|
`: AND ( AddressRole = ( arTo OR arCc OR achc ) )
`P — _ _ — - _ _ ' — _ _ — — — _ _ — _ _ - ' _ —_1 ,
`: IF
`( IsBquMaii )
`I”
`
`:IF__(Di:ectE)n_=—ar§end_)______ "
`IAND ( AddressType = atMyAddress)
`
`I
`
`( Direction = drSend )
`I AND ( AddressType = atNoAddress )
`IAND ( OriginCount = 1 )
`
`I
`I
`l
`
`,
`I
`:AND ( AddressRole = arTo)
`r . _ — — — _ _ — _ — _ - — u _ _ _ — — _ _ _ — — '\
`
`( Direction = drSend )
`I IF
`: AND ( AddressRole = ( arTo OR arCc OR achc ) )
`
`I_ __ _ _
`'
`
`Yes (FIG. 24B)
`
`( Direction = drReceive ) AND ( IsToMe)
`I IF
`: AND ( AddressType = atMyAddress )
`
`|
`
`‘ \ x \
`
`( Direction = drReceive ) AND ( IsToMe )
`IIF
`: AND ( AddressRole = ( arSender OR arFrom ) )
`r ______________________ _ _
`( Direction = drReceive)
`I IF
`:AND ( NOT IsToMe)
`I AND ( IsFromKnownCorresp )
`I AND ( AddressType = atCorrespAddress)
`:AND ( AddressRole = ( arSender OR arFrom ))
`
`I
`"\ \
`
`I
`I
`P
`I
`I
`
`‘ \
`
`(FIG. 24B)
`
`Yes (FIG. 248)
`
`Page 30 of 57
`
`Page 30 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 30 0f 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. 243
`
`Page 31 0f 57
`
`Page 31 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 31 of 33
`
`US 6,725,228 B1
`
`AddAddressFolder
`
`
`
`
`FolderId
`
`
`= 0?
`
`
`
` Input Parameters
`
`= AddressEntry
`No
`
`-
`-
`
`
`
`
`
`
`
`
`
`
`
`
`Build Folder as follows:
`
`
`-- Set FolderName from AddressName, or from
`
`AddressString if AddressName is empty.
`-— Set FolderType to ltCorresp
`-- 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
`
`Read Folder from
`Catalog database
`
`
`
`
`
`
`
`-
`
`
`Build Address from AddressEntry
`
`Set AddressType based on FolderType
`ftMe
`--> atMyAddress
`fiCorresp --> atCorresp
`ftBulkMail --> atBquMail
`
`
`Add Address to Catalog database
`
`
`FIG. 25A
`
`UpgradePendingCorresp
`
`
` Read Folder from Catalog database
`Set IsPendingCorresp to False
`
`
`Do "UpdateFolder" as shown in FIG.1D.
`
`Read Address from Catalog database
`
`Set isPendingCorresp to False
`
` Input Parameters
`Update Address in Catalog database
`
`= AddressEntry
`
`FIG. 253
`
`Page 32 of 57
`
`Page 32 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 32 0f 33
`
`US 6,725,228 B1
`
`Input Parameters
`= AddressString
`+ TargetFolderId
`
`TargetFolderId =
`..-,
`..
`FolderId of Unsorted .
`
`Move to
`"Unsorted"?
`
`Delete Address
`
`from Catalog
`database
`
`Update Address in Catalog database
`
`Read Address from
`Catalog database using
`AlternateKeyl
`
`Add AddressString
`to AddressQueue
`
`Address
`Found?
`
`Create Address in Catalog
`data base
`
`Set FolderId in Address to TargetFolderId
`Read TargetFolder from Catalog database
`Set AddressType based on TargetFolder's
`FolderType
`--> atMyAddress
`l’cMe
`ftCorrasp --> atCorresp
`l’CBulkMail --> atBulkMail
`Set IsPendingCorresp in Address from
`TargetFolder
`
`Page 33 0f 57
`
`Page 33 of 57
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 33 0f 33
`
`US 6,725,228 B1
`
`Position to first MessageSummary
`in Catalog database
`
`Get next MessageSummary in
`Catalog database
`
`Does any AddressString in
`the AddressQueue match
`an AddressString in the
`MessageSummary
`AddressList?
`
`database if IsCorresp has changed
`
`Empty
`AddressQueue
`
`-
`
`Process Shortcuts as shown in FIG. IOB
`
`- Update MessageSummary in Catalog
`
`FIG. 27
`
`Page 34 of 57
`
`Page 34 of 57
`
`

`

`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.
`BACKGROUND OF THE INVENTION
`
`Electronic messaging, which includes electronic mail (or
`“e-mail”) messaging, is now an accepted, and some would
`say vital, medium for business and personal communica-
`tions. The rapid growth of electronic messaging is expected
`to continue. This growth brings an increasingly serious
`problem of how to manage the volume of messages. Accord-
`ing to a 1998 Pitney Bowes survey, 71% of respondents said
`they felt overwhelmed by the number of messages they
`receive. This problem is becoming more severe. John
`Dvorak, a frequent writer on the topic of computing states in
`PC Computing magazine that“ .
`.
`. we have poor tools to sort
`and organize (or even find) the e-mail we collect”.
`Electronic messages, which may include attachments of
`diverse kinds, are sent and received through the use of
`messaging software. For example, e-mail messages are sent
`and received by e-mail software such as Microsoft’s OUT-
`LOOKTM or Netscape’s COMMUNICATORTM. Other
`widely used types of electronic messaging are voice mail,
`fax and instant messaging. The vast majority of current
`messaging software is based on design principles that origi-
`nated when message volumes were low. Current e-mail
`software, for example, provides rudimentary features for
`organizing e-mail messages (both incoming and outgoing)
`into various folders. The most basic model saves received
`
`messages in an Inbox folder, messages waiting delivery in an
`Outbox folder, and sent messages in a Sent Messages folder.
`Users can create additional user folders to which they can
`move or copy messages. Refinements to this basic model
`include providing additional system folders such as Drafts
`and Wastebasket folders. In general, the user is responsible
`for moving e-mail messages between folders and for man-
`aging the messages once they have been placed into a folder.
`This can be an onerous responsibility, especially in cases
`where the user receives large volumes of e-mail messages as
`may easily occur, for example, if the user subscribes to one
`or more high volume mailing lists.
`A fundamental weakness of this folder/message model is
`that a message can only exist in a single folder at a time.
`While a user can place copies of e-mail messages into
`multiple folders the user must manage the copies separately.
`If the user wishes to see a message in multiple folders, then
`he or she must make multiple copies of the message, which
`results in using additional storage space and in creating more
`messages that need to be managed. This model also requires
`that the user manually organize each message. This can lead
`to cluttered folders and a general lack of organization in the
`stored e-mail messages that a user accumulates over time.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`Further, once an e-mail message has been received it can
`be difficult to find the message later, especially if there are
`many folders into which the message could have been
`placed. This is frustrating and inefficient for the user.
`Some current electronic mail software is capable of
`filtering incoming e-mail messages by applying a series of
`rules. The filtering rules may be automatically executed each
`time a message is sent or received. The current version of
`Microsoft Outlook has a facility which allows users to create
`such rules, for example. US. Pat. No. 6,057,841, Thurlow et
`al., describes a system for applying a set of electronic
`message processing rules for managing incoming and out-
`going electronic messages. U.S. Pat. No. 5,377,354, Scan-
`nell et al., also describes a rules-based filtering mechanism.
`Rules can execute specific tasks when user-defined crite-
`ria are met. Rules can be used to process electronic messages
`without requiring users to spent a lot of time sorting through
`their inboxes deleting, filing, and responding to their mes-
`sages. While filter rules are powerful, they are also difficult
`to use because they are typically implemented as a series of
`instructions against which each message is evaluated. If the
`number of rules exceeds a relatively small number the
`overall
`rule set becomes very difficult
`to understand.
`Another disadvantage is that rules must be created manually
`and can involve a significant amount of effort if a user wants
`to organize their messages in a thorough manner, such as by
`correspondent. A further disadvantage is that e-mail systems
`which apply filtering rules are typically restricted by the
`folder/message model and cannot organize a message into
`multiple folders without creating multiple copies of the
`message. As a result of the foregoing disadvantages many
`users do not bother to set up such rules. Even when the rules
`have been set up they act only when a message is sent or
`received. Such rules are incapable of managing messages
`after they have been received or sent.
`Other features which software vendors have provided in
`an attempt to help users organize their messages are key-
`words (also referred to as “categories”), tags (also referred
`to as “fiags”), searching tools, and links to other objects such
`as task lists. While these features improve the manageability
`of e-mail they are less powerful than filtering rules and have
`proven inadequate for dealing with higher message volumes.
`Keywords and tags let a user highlight and identify
`messages to distinguish them from other stored messages. A
`major drawback to these mechanisms is that the highlighted
`messages are visible only in the folder to which the message
`belongs. The value of these mechanisms is significantly
`reduced because there is no fast and convenient way to
`locate all tagged messages or a

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