throbber
|||||||||||||||||||||||||||||l|||||||||||||||||||||||||||||||||||||||||||||
`
`U8006725228131
`
`(12) Ulllted States Patent
`(1(1) Patent N0.:
`US 6,725,228 B1
`
`Clark et al.
`(45) Date of Patent:
`Apr. 20, 2004
`
`6.167.462 A * 12/2000 Yeager
`(),182,0?l Bl
`*
`1721101
`liushimi
`6,226,630 Bl
`"
`51200] Billmers
`6,324,569 Bl
`"‘ “[200] Ogilvie et al.
`6396915 Bl
`* M2002 nelfma" 9‘ al‘
`6,424,992) Bl
`"
`7121102 Shunian
`.
`.
`_
`6.449.615 Bl
`9721102 Luieial.
`*
`6,466,941 Bl
`* 111/2002 Rowe eial.
`6507.846 Bl
`*
`172nm Consens
`FOREIGN PATENT DOCUMENTS
`
`..
`
`167110
`1111.1?
`70713
`.. TUE-“500
`
`“ firQO
`'leJr'Zflfi
`f
`707.10
`.. 7077102
`
`7077100
`
`
`
`.
`
`(54) SYSTEM FOR MANAGING AND
`ORGANIZING STORED ELECTRONIC
`MESSAGES
`
`(76)
`
`Inventors: David Morley Clark, 920 Innes Street.
`‘
`.
`._
`,
`.
`..
`Nelson, British Lolumbia VlL 512
`C _Th
`WH‘ C“ _
`a 0
`{ A),
`50"; MP- 3‘ 1
`"mils
`Slglhfégeilcy‘l‘iflsgni gnfi‘hfiiumhla
`I
`.-
`avi
`ite e
`.A;
`Braeewell, 708 Third Street, Nelson,
`British Columbia VlL 2R2 (CA); Jeff
`Toy Tsao Kwnn, 12 Am ndel Avenue,
`Toronto, Ontario M4K 3A4 (CA)
`
`I.
`H,
`
`“[999
`wowfl'm“
`O’lHER PUBLICATIONS
`
`( ‘ ) Notice:
`
`Subject to any disclaimer, the term of this Mia050“ Imam“ Explorer 1995300] -*
`paw,“ I5 cxlcndcd 0r adjuslcd undu- 35
`Dvorak, John C., Scat-fer Ilium Sprmr, Jan. 4, 1999, pp. 1—2.
`U.S.C. 154(1)) by 212 days.
`De La Cruz el 711., Inside MAP}, @1996, pp. 528-54l (Table
`of Contents also included).
`
`(21) Apply NW 09‘7704’199
`
`Oct. 31, 2000
`
`filed.
`(22)
`Int. Cl.7
`(51)
`(52) U.S. C1.
`(53) Field of Search
`
`MSDN l:ibrary—Apr.-1999, Messaging API(M{31Pl),I.egal
`Information, Developing a Message Store l’rovrder.
`* tiled by examiner
`
`‘
`_
`Pritfmo'flmmifier—Kim Vu,
`ANN?” Emmer—MO'1P13‘S" “mm” 1
`(74) Attorney, Agent, or Prrm—Oyen, Wiggs, Green &
`Mutala
`
`(106]? 7,100
`7077102; 70717
`70777, 200. 2,
`707nm
`
`71281.1(]
`
`1071'?
`70?”
`
`a
`v
`‘
`1 "
`U'S' IAIENT DOCUMEN r5
`4.611.280 A "
`911986 Linderman
`4_.869_.158 A “
`271089 McCaulcy
`33,274,805 A "
`IZJ'I‘J‘H Iferguson cl all
`{377.354 A x
`'2“??? manneueta"
`3%“??4] A
`83133:? wag“
`{QMJK A
`8” '6 Irwak cl al’
`3,348,789 A
`811996 Nakanura
`5,615,367 A *
`371997 Bennett 1:1 al.
`5.694th A 11 1211967 Johnson CI aL
`5,813,619 A *
`9/1093 Johnson el al.
`5,899,995 A
`511999 Millier et al.
`5.948.058 A *
`911999 Kudoh el :11.
`611153.442 A
`1211999 (Then el al.
`6.92931“ A
`@200“ 'B‘m” 3‘ a"
`R I
`girl?” ‘1 a"
`_.
`., .
`7
`.
`o erl
`6,013,142 A 3‘ W20“) “tiger cl at H
`
`6,088,696 A * TECH) Moon et al.
`
`6,154,740 A * 1112.000 Shah
`
`Tm”
`
`7071102
`11QO
`707nm
`
`70110041
`
`in)?”
`.
`“mam
`'FUWIU
`10717
`
`..
`
`Aeomputer~based system catalogs and retrieves electronic
`messages saved in a message store. The system automati-
`cally organizes each saved message into multiple folders
`based on the contents and attributes of the message, and
`implements improved methods for manually organizing
`messages. Unlike prior art systems, where a message exists
`in only one folder,
`the system uses lightweight message
`h n_ 1
`l d.‘ 1
`1h
`_
`.
`h.
`I
`1. 1d
`‘
`‘.
`1
`5 D ‘" 5 0
`"’P “Y
`a message 1“ m“ .‘P ‘5 0 “5’ “m” '
`laneously. The system preferably permits messages to'he
`Dreamed by: 1) haSIC Inc-“681:6 and allachmem Pmperllcs.
`eg. date, status. attachment
`type; 2} extended message
`properties that the uSer can specify, cg. keywords; and 3)
`correspondent or bulk mail senderfreeipient, with automatic
`separation of bulk mail from correspondence. Performance
`and usability are improved by performing reads incremen-
`r
`1
`‘
`i
`‘
`.
`,
`tally and by [Moulding multiple sorting keys.
`
`34 Claims, 33 Drawing Sheets
`
`
`
`
`
`
`
`61a-
`
`L
`
`
`Au.»- III- [14]
`\‘nDn m
`Ullmd HI}
`The-HI?!
`I'M Walt
`“Mum
`Ettzanetlr Gm" :21
`Eon BIIHUI {‘J
`Fem-1115mm.
`m MW
`Ul «mm
`X43961" <W -
`1'
`\I
`I
`m“‘...fl91.11: emnrmnlaumutI Know-v a?" ! Mml4] m| die
`.6
`3
`- 69
`Tom?
`6.3—
`
`001
`
`Apple Inc.
`APLl 108
`
`US. Patent No. 8,724,622
`
`001
`
`Apple Inc.
`APL1108
`U.S. Patent No. 8,724,622
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 1 0f 33
`
`US 6,725,228 B1
`
`
`
`FIG. 1A
`
`002
`
`002
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 2 of 33
`
`US 6,725,228 B1
`
`
`
`FIG. 13
`
`003
`
`003
`
`

`

`US. Patent
`
`Apr. 20,2004
`
`Sheet 3 of 33
`
`US 6,725,228 B1
`
`User Intefiace Davice
`
`Message Client
`
`Outgoing Requests
`
`Message Store
`Server(s)
`
`Incoming Events
`
`FIG. 2
`
`004
`
`004
`
`

`

`US. Patent
`
`Apr. 20,2004
`
`Sheet 4 of 33
`
`US 6,725,228 B1
`
`i E : F
`
`Transport Header
`ReceiveDate: Today 10:10:05
`Din-action: Received
`
`From: Tom Gibson
`To: David Clark
`Cc: David Bracewell
`
`Subject: White paper
`Body:
`Here is the white paper
`for our review.
`y
`ttachment: White Pa
`
`r.doc
`De
`
`Status: IsUnread
`IsActive
`
`Keywords: Marketing
`White Paper
`
`Dal": Today
`l-— This Week
`]-- This Month
`
`Status
`|--- Received
`
`Correspondent
`I--- Torn Gibson
`
`Attachment
`l-- All Attachments
`1--- DOC
`
`Status
`1-— Unread
`|-— Active Mail
`
`Keywords
`|-- Marketing
`|——— White Paper
`
`IG. 3
`
`005
`
`005
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 5 of 33
`
`US 6,725,228 B1
`
`CLIENT COMPUTER
`
`
`
`CLIENT COMPUTER
`
`SERVER COMPUTER
`
`
`
`403
`
`FIG. 4B
`
`SERVER COMPUTER
`
`CLIENT COMPUTER
`
`006
`
`006
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 6 0f 33
`
`US 6,725,228 B1
`
`Addressrd
`
`4 StoreLinkld (FK
`
`Storeld(F aStoreMessageId(FK
`
`dam
`
`f— 54
`Message
`StoreMessageId
`
`Attachment
`4 StoreAttachId
`
`FIG. 5A
`
`007
`
`007
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 7 0f 33
`
`US 6,725,228 B1
`
`
`Catalog I Message Share
`
`
`MessageId
`A Attachld
`
`"I FolderId
`
`
`
`53‘
`
`MtachSummaryr
`52'
`
`
` lil'lessagle.'.iur|'|rlnalm1r
`
`Messageld
`AttachId
`
`
`
`57
`
`
`
`Shortcut
`
`‘
`
`
`
`
`
`Attachment
`
`55'
`
`MessageId
`AttachId
`
`<attachment data>
`
`
`
`FIG. SB
`
`008
`
`008
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheets of 33
`
`US 6,725,228 B1
`
`60
`
`as
`
`64
`
`65
`
`66
`
`—_- X
`File
`Edit
`View-—
`mmmu we
`
`__
`
`
`
`61
`
`61A
`
`Active Mai!
`To Do (4)
`
`(14)
`
`Unread (1 6)
`Today (12)
`
`Yesterday (6)
`This Week
`
`Elizabeth Green {2)
`
`Bob Baxter (1)
`Forrester Research
`
`FDA <saved search»
`
`U1 ckeyword>
`
`x45 Study <keywom>
`
`—
`
`__
`
`mmmml
`—_
`
`69
`
`623
`
`62"
`
`57
`
`52
`
`FIG. 6
`
`009
`
`009
`
`

`

`US. 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
`
`74
`
`SECOND LAYER ~ Applications of Ughtwelght Message Shortcuts
`
`
`IIOIOIO
`
`
`
`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
`
`72
`
`BASE LAYER - Base Servicfi
`
`
`IOU-ole.
`
`Catalog database
`Unified View of multiple Message Stores
`Catalog Server Requests and Events
`Lightweight message shortcuts
`Timed Shortcuts
`User created Shertcuts
`User excluded Shortcuts
`Incremental read of Folder contents
`
`FIG. 7
`
`010
`
`010
`
`

`

`US. Patent
`
`Apr. 20,2004
`
`Sheet 10 0f 33
`
`US 6,725,228 B1
`
`are“
`
`
`
`
`
`
`
`
`
`
`
`
`
`56
`Folder
`
`
`Folderld
`
`P
`tFoid Id
`MessageId
`er
`Attach“
`Eoflerfl‘fame
`FolderId
`
`0 er we
`
`
`SORRY
`ISHOt
`.
`A SortColumn
`1
`FolderDateTlme
`_
`.
`
`SortDIrectIon
`FoiderSortColumn
`_
`_
`
`TnggerActJon
`-
`-
`
`FolderSortDIrectIon
`,TnggerDate'fime
`
`
`
`Iwnread
`ShortcutCOtmt
`
`IsCorresp
`UnreadCount
`
`
`CorrespShortcutCount
`I U Short: t
`UnreadCorrespCount
`5 Se
`”
`
`
`
`
`
`
`57
`
`+ Sort
`
`Alt
`
`t K 1
`
`= $1306"
`Key
`AlternateKeyZ
`_
`_
`F TnggerDateTlme
`
`AlternateKeyl
`
`= ParentFolderId
`AlternateKeyZ
`= ParentFolderId
`+ FolderName
`(uppercase)
`
`AltemateKey3
`=15Hot
`
`
`Subject
`
`
`AttachSummarv
`
`AIIad1Type
`AttachName
`AttachSize
`
`MessageSummary
`
`MessageId
`FolderExcludeList
`ISUnread
`
`ISCOWGSD
`MessageDateTime
`DisplayNames
`
`FIG. 8
`
`011
`
`011
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 11 0f 33
`
`US 6,725,228 B1
`
`241
`
`291
`
`27?
`
`Message Store Server
`
`Catalog Sewer
`
`Message Client
`
`min vn
`
`
`e—MessageCha nged
`
`DeleteFoider———a
`
`ReadFolderSubtree—o
`
`e—-—MessageAdded
`
`e—MessageDeleted
`
`ReadFolder——o
`
`
`
`
`
`ReadHotFolders——o
`
`ReadFoIderContents—H
`
`DeleteShortcut—o
`
`DeleteFoIderShortcuts—o
`
`Read MessageSummary—o
`
`ReadAttachSummary—-—e
`
`
`
`WEE—vents
`
`FolderAdded—b
`
`W 4
`
`——-——ReadMessage
`
`
`
`
`FolderCha nged—-—->
`
`FolderHotChanged———>
`
`FolderDeleted——>
`
`ShortcutAdded—-—>
`
`ShortcutDeletedF—D
`
`
`
`
`ShortcutSortKeyChanged—b
`
`SummaryChanged——->
`
`FIG. 9
`
`012
`
`012
`
`

`

`US. Patent
`
`Apr. 20,2004
`
`Sheet 12 of 33
`
`US 6,725,228 B1
`
`ShortcutEntry
`
`Memory structures
`
`
`
`
`
`ShortcutAction
`100 1
`Excluded
`Shomumnay
` OIdShortcut
`
`
`
`[AttachSummary]
`
`Input Parameters
`= MessageSummary
`
`Read all Shortcuts for Message. Save each Shortcut as an OldShortcut
`object in ShortcutArray with ShortcutAction of saDelehe.
`
`Process each ShortcutEntry as shown in FIG. 11A.
`
`Execute Second Layer 2 Automch Organization Rules
`(which usa "AddChangeShortCUE' to create Shortcuts)
`
`Execute Second Layer Filter Rules
`(which use "AddChangeShortcut" to create Shortcuts)
`
`Execute Third Layer Correspondent and Bulk Mail Rules
`(which use "AddChangeShortcut" to create Shortcuts)
`
`For each element in FolderExcludeList, do “ValidateFolderListElement”.
`If valid element, set Excluded flag in matching ShortcutEnlIy to True.
`
`FIG. 103
`
`013
`
`013
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 13 01'33
`
`US 6,725,228 B1
`
`AddChangeShortcut
`
`Input Parameters
`= MessageId
`+ Attachld
`+ Folderld
`+ TriggerAction
`+ TriggerDateTime
`+ IsUserShortcut
`
`Search ShortcutArray for
`matching Shortcut or
`OidShortcut (using
`Messageld + AttachId +
`FolderId as search key)
`
`to saKeep.
`
`Add ShortcutEntry to
`Shortcubfllrray. Set
`ShortcutAction to saAdd.
`
`10
`
`No
`
`Build Shortcut object in ShortcutEntry,
`using info from Input Parameters.
`
`Set ShortcutAction
`
`FIG. 10C
`
`ValidateFolderUstElemen
`
`Read Folder from Catalog
`database
`
`FolderExcludeList
`
`If FolderDateTime in element
`doesn't match value in
`Folder, delete element from
`
`FIG. 100
`
`014
`
`014
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 14 0f33
`
`US 6,725,228 B1
`
`Input Parameters
`= ShoncutEntry
`111
`
`Read Folder from Catalog
`database
`
`Ad
`
`DeleteShorbcut
`
`With OldShOrtcut, do
`"DecrementFolderCounts"
`(FIG. 11B)
`Delete Shartcut from
`Catalog database
`Generate ShomtDeleted
`Event
`
`Do "UpdateFolder" (FIG.
`11B)
`
`UpdateShortcut
`
`Do "BuildShortcut" (FIG. 113)
`If Shortcut is same as OldShortcut, then
`Exit
`With OldShortcut, do
`"DecrernentFolderCounis" (FIG. 11 B)
`With Shortcut, do "IncrementFolderCounts"
`(FIG. 113)
`Update Shortcut in Catalog database
`If the SortKey has changed, generate a
`ShortcutSortKeyChanged Event
`Do "UpdateFolder' (FIG. 113)
`
`Set ShortcutTimer as shown in FIG. 13
`
`1 15
`
`Yes
`
`|
`
`saKeep
`
`No
`
`,
`
`‘m -_ mint" “u
`113)
`.
`mggflzfigfdficouw
`(FIG 113)
`'
`3:33:23?“ to catalog
`Generate ShomcutAdded
`Event
`
`Do "UpdateFolder" (FIG.
`
`FIG. 11A
`
`015
`
`015
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 15 0f 33
`
`US 6,725,228 B1
`
`BuildShortcut
`
`Finish building the Shortcut object in ShortcutEntry:
`-- Build SortKey is shown in FIG. 12
`-- Set SortKey and SOrtColumn (from Folder)
`
`-— Set IsUnread and IsCorresp (from MessageSummary)
`
`IncrementFolderCounts
`
`Increment ShortcutCount
`
`If ShortcuthCorresp AND IsUnread, increment UnreadCorrespCount
`
`If ShortcutlsUnread, increment UnreadCount
`If ShortcutlsCorresp, increment CorrespShortcutCount
`
`DecrementFolderCounts
`
`Decrement ShortcutCount
`
`If Shortcut.IsUnread, decrement UnreadCount
`
`If ShortcutJSCorresp, deCrement CorrespShortcutCount If Shortcut.IsCorresp AND IsUnread, decrement UnreadCorrespCount
`
`UpdateFolder
`
`o Update Folder in Catalog database
`- Generate FolderChanged Event
`
`FIG. 11B
`
`016
`
`016
`
`

`

`US. Patent
`
`Apr. 20,2004
`
`Sheet 10 of 33
`
`US 6,725,228 B1
`
`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
`
`MessageId
`Attachld
`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
`
`,
`,
`un'cwes'tr'm
`
`UCWI
`
`UCWZ
`
`UCW3
`
`Unicode Character Weights of
`first 3 characters of string.
`
`,
`,
`MertrIng
`
`C1
`
`C2
`
`C3
`
`C4
`
`c5
`
`c5
`
`Vaiues of first 6 characters of
`string.
`
`DateTime
`
`YY
`
`MM
`
`DD
`
`hh
`
`mm
`
`55
`
`w=Year_1950
`
`Enumeration 0R
`Boolean
`(sdDescending)
`
`Value
`
`YY
`
`MM
`
`DD
`
`hh
`
`W = Year, 1950
`
`533$?“ 0“
`(“Ascending
`
`Value
`
`255
`- YY
`
`255
`- MM
`
`255
`- DD
`
`255 W = Year _ 1950
`- hh
`
`Integer32 0R
`Integer16
`
`_______....-.. Bits ........ ..-
`
`31—24 23-16
`7-0
`
`
`Bits are numbered with 0 being
`the least significant and 31 the
`most significant.
`
`FIG. 12
`
`017
`
`017
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 17 M33
`
`US 6,725,228 B1
`
`Initialize ShortcutTImer
`to inactive state
`
`Read first Shortcut
`from Catalog database
`using Alternatesz
`
`135
`
`Agfigrr‘t‘fie
`
`If TriggerDateTirne is non-zero and is
`less than Shortcut'rimer, reset
`ShortcutTImer to TriggerDateTI me
`
`generate an intemai DeleteShortcut Request.
`
`o
`-
`
`Read Shortcut from Catalog database
`If TriggerAction is taDeleteShortcut then
`
`
`
`FIG. 13
`
`018
`
`018
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 13 of 33
`
`US 6,725,228 B1
`
`140
`
`J
`
`~
`
`J
`
`142
`
`143
`
`“0
`
`Request Parameters
`= FolderId
`+ SortKey
`+ SortDirection
`+ RequestCount
`+ CorrespOnly
`
`¢¥mmmng
`
`Position at last
`Position at first
`“3?”?ng
`Shortcut in Folder
`Shortcut in Folder
`position :1 Shortcut
`Alternatele
`using Alternatele
`using Alternatele
`
`142A
`
`Son
`
`.
`
`'
`sdAscendIng
`
`143A
`
`1438
`
`
`
`Read Nextle Shortcut in Folder
`(depending on SortDirection)
`
`144
`
`145A
`
`Set IsEOF 13::
`True
`
`Yes
`
`End of
`Folder?
`
`No
`
`luded I
`
`Filter?
`_
`Is (Contentmunt > _
`No
`Requesmount) AND
`(Current SortKey NOT =
`Previous SorlKey)?
`
`
`
`
`Read
`Enough?
`
`
`
`149
`
`)
`p0
`(Co
`Is
`rres
`nly = True
`_
`AND (IsGone-sp — False) ?
`
`Yes
`
`Sort ContentArray in
`memory, using valua
`from MessageSummal-y
`
`arid AttachSummarv
`
`BuildRe I I
`
`Read related MessageSummary from Catalog
`
`database
`If AttachId is non-zero, read related
`
`
`
`
`
`
`
`
`
`« AtlachSummary from Catalog database
`
`Add MessageSummary and AttachSurnmary (or
`NULL) to ContentArrav
`Increment ContentCount
`Set SortKey in Reply from the current Shortcut
`SortKev
`
`Reply Parameters
`= Resultcode
`+ 50m
`+ IsEOF
`+ ContentCount
`+ ContentArray
`= Array of [ MessageSummary + {AttachSurnmary 0R NULL) ]
`
`FIG. 14
`
`019
`
`019
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 19 0f 33
`
`US 6,725,228 B1
`
`150
`
`Start
`
`Read Folder from Catalog
`database
`
`152
`
`Request Parameters
`= Folderld
`+ FolderSortColumn
`+ FolderSortDirection
`
`Position at first Shortcut
`in Folder using
`AlternateKeyl
`
`Read next Shortcut in Folder
`
`15
`
`5
`
`Yes
`
`End of
`Folder?
`
`The underlying data type
`for the FolderSortColumn
`
`Enumeration
`OR Boolean
`
`No
`
`, _
`
`Need to build SortKey if
`FolderSortColumn
`NOT = SortColumn
`OR FolderSoztDiI-ection
`NOT = SortDirection
`
`156
`
`157
`
`Need to build
`SortKey if
`FolderSortColumn
`NOT = SortColumn
`
`
`
`If FolderSortColumn is a column in the MessageSummary, road
`the MessageSummary from the Catalog database
`If FolderSortColumn is a column in the AttachSummary, read the
`AttachSummary from the Catalog database
`Build the SortKey
`Update Shortcut in Catalog database
`
`Set FolderSortCqumn
`Set FolderSortDirection
`Update Folder in Catalog database
`
`FIG. 15
`
`020
`
`020
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 20 0f 33
`
`US 6,725,228 B1
`
`Contains all tables and fields of Base Layer,r plus the following:
`
`SearchCriteria
`
`MessageSummary
`52
`
`
`
`Direction
`
`AttachSummary
`SendState
`
`IsDeleted
`
`
`IsActive
`
`IsKept
`IsTaggecl
`IsToDo
`
`
`
`
`KeywordList
`
`53
`
`FIG. 16
`
`021
`
`021
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 21 of 33
`
`US 6,725,228 B1
`
`Root
`
`|--- Status
`I
`|--- 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
`
`I-- * User created folders
`
`FIG. 17
`
`022
`
`022
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 22 0f 33
`
`US 6,725,228 B1
`
`Contains all tables and fields of Base Layer and Second Lover,r plus the following:
`
`Folder
`
`5’5
`
`57
`
`IsPendingCorresp
`
`
`
`
`58
`
`
`
`MessayeSummary
`
`52 AttachSummaryr
`
`FolderId
`
`
`AddressString
`
`
`AddressType
`
`
`IsPendingCOrresp
`
`
`AddressList
`
`AlternateKeyl
`= AddressString
`(uppercase)
`
`AlternateKeyZ
`= Folderld
`
`FIG. 18
`
`023
`
`023
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 23 0133
`
`US 6,725,228 B1
`
`Contains all Folders In Base Layer and Second Layer, plus the following:
`
`<Root>
`
`|-—- Correspondents
`|
`|--— Me
`|
`|--- * Automatically created Correspondent folders
`I
`|-- * User created Correspondent folders
`
`I |
`
`|
`1
`
`-- Bulk Mail
`|-- Unsorted
`|--- * User created Bulk Mail folders
`
`FIG. 19
`
`024
`
`024
`
`

`

`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 Server
`
`Catalog Server
`
`Message Client
`
`Mom—mam
`
`AddMyAddress——o
`
`ReadFolderAddresses—o
`
`MoveAddress—o
`
`ProcessAddressQueue—a
`
`FIG. 20
`
`025
`
`025
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 25 0f 33
`
`US 6,725,228 B1
`
`217
`,r—m..__/
`
`AddressEntry
`
`AddressArray /
`
`
`
`
`
`
`
`
`
`
`
`FIG. 21A
`
`StateCou nters u
`
`
`ToCount
`
` OriginCount
`
`
`Shortc utCou nt
`
`218
`1
`.... _ # JIFIECFe‘rI'Ie—nEIF UdErEsERBIE 2 {ErinEr—oEErFrEn? )T _ ‘.
`
`Phase 1 Processing
`
`~~~~ “Jinan-lamaAddrEsERBIEEEEEf"—""'"l_|
`
`FIG. 213
`
`026
`
`026
`
`

`

`US. Patent
`
`Apr. 20,2004
`
`Sheet 26 of 33
`
`US 6,725,228 B1
`
`Phase 1 Processing
`
`: Set to True
`|
`IF
`( Direction = drSend )
`/I AND ( AddressType = atMyAddress )
`: AND(AddressRole=arFrom)
`
`xx
`
`:
`I
`:
`J
`
`II
`
`.I
`I
`J
`
`I
`'I
`I
`
`(Direction=drReceive)
`IF
`AND ( AddressType = atMyAddress )
`AND ( AddressROIe = arTo OR arCc 0R achc )
`
`.
`
`‘ ":
`
`J
`1F ( Address-Wm = ataulkAddress )
`______________——__.—..—__________.
`— _ _ H ' ’ _ h ' ' _ _ _ ' " _ _ _ " " — _ ‘ ' _ — _ _
`\ {Set toTrue
`!
`4
`IF
`(AddressType = atCorrespAddress )
`:
`' AND ( AddressRoIe = ( arSender OR arFrom ) )
`
`I
`
`:1
`
`I __________________________ _ _
`X I Set to True
`V
`IF
`(AddressType = atCorrespAddras )
`
`027
`
`IsFrornKnownCorresp
`IsToKnownCorresn
`
`027
`
`

`

`U.S. Patent
`
`Apr. 20,2004
`
`Sheet 27 0f33
`
`US 6,725,228 B1
`
`Input Parameters
`= MessageSummary
`
`Get next element in
`MessageSurnmary's AddressList
`
`225
`
`Yes
`
`To Phase 2
`
`226
`
`
`
`Read Address from Catalog
`database
`
`29
`
`Add Address information to
`AddressEntry
`
`Set StateFlags
`
`FIG. 22
`
`028
`
`028
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 28 0f33
`
`US 6,725,228 B1
`
`
`
`From Phase 1
`
`Get next AddressEntry in
`Add
`Array
`
`362
`
`Yes
`
`
`
`Do "AddAddressFoIder"
`as shown in FIG. 25A
`
`
`
`"UpgradePendingCorresp"
`as show in FIG. 258.
`
`
`
`
`-
`
`
`-
`
`Do "AddChangeShortcut" as
`shown In FIG. lOB.
`Intrernent ShortcutCount
`
`243
`
`243A
`
`
`
`
`
`Zero
`
`-
`-
`
`Add Shortcut to Unsalted Folder
`Set IsBulkMail to True
`
`Non—zero
`
`Set MessageSummary IsCorresp
`to NOT IsBulkMail
`
`
`
`
`FIG. 23
`
`029
`
`029
`
`

`

`US. Patent
`
`Apr. 20,2004
`
`Sheet 29 0f 33
`
`US 6,725,228 B1
`
`I IsBulkMail )
`in:
`: AND I AddressType = atBulkAddress )
`
`I
`I“ a a ‘
`
`:
`I
`L- 5 __
`
`il
`
`( IsBulkMail ) AND I IsToMe}
`{1F
`I AND ( IsFromKnownCorresp )
`: AND ( Direction = drRecaive }
`I AND ( Address‘l’ype : atCorrespAddress )
`I AND ( AddressRoie = ( arSender OR arFrom) )
`
`FIE ' ("IEBquIiai {III—I06 EIEF‘m‘miIEI' """ ‘ '
`: AND ( IsToKnownCorresp)
`IAND ( Direction 2 drSend)
`I AND ( AddressType = atCarrespAddre-ss )
`:AND ( AddressRole = ( arTo 0R arCc OR achc J )
`
`[IF—EIEBEIEJEIITI' """"""""" "1» ’
`
`________ “L_____
`IIF FEBiI'eCtin—garS—eiid)
`IAND ( AddressType = ati‘iyAddress }
`I
`
`L u _ _ _ — _ _ _ _ _ _ _ _ _ g _ _ _ _ h _ _ _ _ : IF
`
`I Direction = drSend)
`I AND ( AddressType : atNoAddrass)
`IAND I OriginCount = 1 )
`
`I
`I
`I
`
`IAND(ToCount=1)
`: AND ( AddressROIe = arTo)
`
`|--"'""
`I
`
`(FIG. 24a
`
`)
`
`Yes (FIG. 243)
`
`{iii—IBIr—ec'uSn'JaEEIEI—I _______ " I
`:AND I AddressRole = I arTo OR art: on achc ) ) r " '
`
`Yes (FIG. 243)
`
`( Direcljon = drReceive ) AND ( IsTaMe )
`I IF
`ll AND ( AddressType = atMyAddress )
`
`I
`
`" - -— h
`
`|
`( Direction = drReceive ) AND ( IsToMe }
`I IF
`I AND ( AddressRoIe = ( arSender 0R arFrom ) ) H a
`l _ . _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|
`r ______________________ _ _
`
`“'
`
`( Direction = drReaaive J
`IIF
`: AND ( NOT IsToMe)
`I AND ( IsFromKnownComsp )
`IAND ( AddressType = atCorrespAddress )
`:AND ( AddressRoie = ( arSender 0R arFron-I ) J
`
`I
`:
`r.
`II
`
`Yes (FIG. 243)
`
`Yes (FIG. 24B)
`
`030
`
`030
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 30 0f 33
`
`US 6,725,228 B1
`
`[8qu Mail Shortcut]
`Set CreateShortcut to True.
`
`[Confirmed Corresp Shortcut]
`Set IsConfirrnedCorresp 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
`
`

`

`US. Patent
`
`Apr. 20,2004
`
`Sheet 31 0f 33
`
`US 6,725,228 B1
`
`MderessFolder
`
`
`Build Folder as follows:
`
`
`-— Set FolderNarne from AddressName, or from
`
`AddressString if AddressName is empty.
`
`-- Set FolderType to ftCorresp
`
`
`- Set IsPendingCorresp from AddressEntry
` FolderId
`
`
`Try to add Folder to Catalog database
`= 0?
`
`
`
`
`
`If FolderName already exists, generate a unique
`FolderName and then add Folder to Catalog
`Input Parameters
`
`
`database
`
`
`No
`= AddrssEntry
`'
`Save Folderld to AddreSSEntry
`
`
`Generate FolderAdded Event
`
`Read Folder from
`
`Catalog database
`
`
`
`
`
`-
`-
`
`
`
`Build Address from AddressEntry
`-
`
`Set AddressType based on FolderType
`-
`
`ltMe
`--> aMyAddmss
`
`ltCorresp —> atCorresp
`
`
`flBulkMail —> atBquMail
`- Add Address to Catalog database
`
`
`FIG. 25A
`
`UpgradePendingCorresp
`
` Read Folder from Catalog database
`OOOII0
`
`Set IsPendingCorresp to Fa|5e
`
`Do "UpdateFolder" as shown in FIGJD.
`
`Read Address from Catalog database
`
`
`Set isPendingCorresp to False
`
`
`Input Parameters
`Update Address in Catalog database
`
`= AddressEntry
`
`FIG. 253
`
`032
`
`032
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 32 0f33
`
`US 6,725,228 B1
`
`Input Parameters
`= Addressstring
`+ TargetFolderld
`
`TargetFolderId =
`"7
`"
`FolderId of Unsorted _
`
`Delete Address
`from Catalog
`database
`
`Read Address from
`Catalog database using
`AlternateKeyl
`
`Add AddressStrIng
`toAddress ueue
`Q
`
`Create Address in Catalog
`database
`
`Update Address in Catalog database
`
`Set FolderId in Address to TargetFolderId
`Read TargetFolder from Catalog database
`Set Add reasType based on TargetFolder’s
`FolderType
`—> atMyAddress
`Me
`ftCon-esp —> atCorresp
`fiBulkMail -> atBulkMaiI
`Set IsPendingCorresp in Address from
`TargetFolder
`
`O33
`
`033
`
`

`

`US. Patent
`
`Apr. 20, 2004
`
`Sheet 33 0f33
`
`US 6,725,228 B1
`
`Position to first MasageSummary
`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
`Add rasQueue
`
`Procm Shortcuts as shown in FIG. 103
`-
`- Update MessageSummary in Catalog
`
`FIG. 27
`
`034
`
`034
`
`

`

`US 6,725,228 B1
`
`1
`SYSTEM FOR MANAGING AND
`ORGANIZING STORED ELECTRONIC
`MESSAGES
`
`FIELD OIr THE INVENTION
`
`'lhis 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 c—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 COMMUNICATOR”. 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 c~rn ail messages as
`may easily occur, for example, if the user subscribes to one
`or more high volume mailing lists.
`A fundamental weakness of this folderfmessage model is
`that a message can only exist in a single folder at a time.
`While a user can placa: copies of e-mail messages into
`multiple folders the user must manage the copies separately.
`lfthe 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.
`
`in
`
`15
`
`so
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`Further, once an e-mail message has been received it can
`be diflicult to find the message later, especially if there are
`many folders into which the message could have been
`placed. This is frustrating and inefficient for the user.
`Some current electronic mail software is capable of
`filtering incoming e—mail messages by applying a series of
`rules. The filtering rules may be automatically executed each
`time a message is sent or received. The current version of
`Microsoft Outlook has a facility which allows users to create
`such rules, for example. U.S. Pat. No. 6,057,841,Thurlow et
`al., describes a system for applying a set of electronic
`message processing rules for managing incoming and out-
`going electronic messages. U.S. Pat. No. 5,377,354, Scan-
`nell et al., also describes a rules-based filtering mechanism.
`Rules can execute specific tasks when user-defined crite—
`ria are met. Rules can be used to process electronic messages
`without requiring users to spent a lot of time sorting through
`their inboxes deleting, filing, and responding to their mes-
`sages. While filter rules are powerful, they are also difficult
`to use because they are typically implemented as a series of
`instructions against which each message is evaluated. If the
`number of rules exceeds a relatively small number the
`overall
`rule set becomes very difficult
`to understand.
`Another disadvantage is that rules must be created manually
`and can involve a significant amount of effort if a user wants
`to organize their messages in a thorough manner, such as by
`correspondent. A further disadvantage is that e-mail systems
`which apply filtering rules are typically restricted by the
`folderimcssage model and cannot organize a message into
`multiple folders without creating multiple copies of the
`message. As a result of the foregoing disadvantages many
`users do not bother to set up such rules. Even when the rules
`have been set up they act only when a message is sent or
`received. Such rules are incapable of managing messages
`after they have been received or sent.
`Other features which software vendors have provided in
`an attempt to help users organize their messages are key—
`words (also referred to as “categories"), tags (also referred
`to as "flags"), searching tooLs, and links to other objects such
`as task lists. While these features improve the manageability
`ofe-mail they are less powerful than filtering rules and have
`proven inadequate for dealing with higher message volumes.
`Keywords and tags let
`a user highlight and identify
`messages to distinguish them from other stored messages. A
`major drawback to these mechanisms is that the highlighted
`messages are visible only in the folder to which the message
`belongs. The value of these mechanisms is significantly
`reduced because there is no fast and convenient way to
`locate all tagged messages or all messages that have been
`assigned a given keyword.
`in dealing with large
`tool
`Searching is an important
`message volumes. Traditional sequential search techniques
`are usually too time—consuming to make them very useful
`for larger message stores. As a result, there have been recent
`efforts to provide systems which implement full-text index-
`ing and retrieval capabilities for message stores. While
`searching is an important technique for finding previously
`sent or received messages,
`it is not particularly useful or
`efficient for dealing with messages as they are received and
`then handled by the user. Asearch must he performed each
`time a user wishes to access messages which match a
`particular .set of search criteria. The user is generally forced
`to manually enter the search criteria. Once a search has been
`run the results of the search may be placed into a separate
`"search results" folder {in addition to the folder in which the
`original message resides). Search results folders are not
`
`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 IMAPlContaincr::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
`problems associated with the current folderi’message model.
`These include U.S. Pat. No. 5,948,058, Kudoh et at, 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 for all messages that
`belong to a category—all messages in the message store
`would need to be examined.
`US. Pat. No. 6,029,164, Birrell ct 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 a1. system are that messages are processed
`in batches {for performance reasons) so the index is not
`always current. Further, a user must execute a search to find
`messages associated with the desired label.
`Miller et al, PCT patent publication No. “(099104344
`disclose an e-mail system in which messages can be
`accessed in a correspondent-centric manner. The Miller et at
`system uses a relational database to organize messages. The
`underlaying database structure is conventional in design and
`has a Correspondent table, a Message table and a Message-
`Correspondent Relationship table. While Miller et al. do
`provide a system which addresses some of the problems
`addressed above, Miller et al. do no

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