YoonChangFinalPresentation by fjzhxb


									An Intelligent Email Sorter Extension for Thunderbird

with IEMS

● ●

Developer : Yoon Suk Chang, 4288977 Supervisor : Dr. Eric McCreath


E-mail management : Everyday task with a lot of email items E-mail : Small database with sender, text, ... Sorting e-mail items : time and money Automatic Induction → Help user

● ● ●


User Command

User Command Predicted Folder

Folders where email items will be organised

Key Issues
● ● ● ● ●

Intelligent E-mail sorting Restructuring Thunderbird : Extension User pattern : What user will do Prediction rules in Email sorting Future Research : AI, Smart clustering

System and Interaction
Email Client

E-mail items Email Server

Predicted Email items



Gathering user pattern

Target folder

User Pattern

Selected Email item

User patterns are used to know :

how a user have organised e-mail items -> how the user will organise e-mail items

Gathering user pattern (cont.)
● ● ●

email : {sender, title, date, body text, ...} folder : {name, uri, ...} set of user pattern : {(email x folder)}

Prediction (Induction)
● ●

Analysis on gathered user patterns Creating prediction Rules for e-mail sorting : Reasoning target folder of e-mail items First matching rule → Folder name Unknown if there is no match Prototype using sender name and folder uri Future research

● ● ● ●

Thunderbird without Extension

Thunderbird with Extension

Predicted Folder


Structure of System
Thunderbird Open Source Software 2.0 or later

Email Client

UI Layout : XUL Event handling : JavaScript Mail Server : XPCOM Packaging - Install manifest - Chrome manifest - XPI Install format

Extension Email Prediction Module

Independent Module for Email Prediction

Structure of System (Cont.)
Windows main events Basic handling of Email-items

Email Client
Gathering user patterns Create Prediction Rules

Adding predicted folder to Email Items and display. extended handling of Email items

Induction of predicted folder using user patterns

Extension Email Prediction Module

E-mail items

Predicted Email items

Domain Structure
Thunderbird Thunderbird Library MailToolbox




Data Management

ThreadPane Box




UI and Command Domain
Mail-Toolbox Domain

ThreadPaneBox Domain

FolderTree Domain

EmailServer Domain
extracts servers and folders using 1..1 Is created by R1 1..1 1..1 creates provides accounts to 1..1 belongs to R6 R2 1..* 1..1 contains has member variable of 0..*

AccountManager xAccountManager

is member variable of 1..1

has member variable of nsIMsgAccountManager 1..1 gets accounts from

in Thunderbird Library Domain

AccountList xAccountList

Account xAccount

nsIMsgFolder in Thunderbird Library Domain
belongs to 1..1

contains 0..* contains 1..1 belongs to 1..1

nsIMsgIncomingServer in Thunderbird Library Domain

is extracted servers and 1..1 folders by

1..1 R4 0..* belongs to 1..1 contain 0..* R3 s 0..*

has member variable nsIMsgIncomingServer of

ThreadPaneContext in UI Domain nsIMessenger in Thunderbird library domain

1..1 provides folders to 1..1 uses

1..1 requests folders of

FolderList xServerArray folderArray

Folder xFolder

1..1 1..1

in Thunderbird Library Domain

is member variable of Is organised into accommodates 0..* is member variable of

is used by PredictedMailItemList 1..1 is used by 1..1

R5 xMsgUri xPredictedFolder xActualTargetFolder bIsAssignedByUser contains 0.*

UserPattern in Prediction domain

xMessenger xMsgheaderParser

nsIMsgHeaderParser in Thunderbird library domain

1..1 uses

Provides predicted folder to 1..1

belongs to 1..1

requests predicted folder for an element of PredictionManager 1..1

in Prediction domain

Prediction Domain
nsIObserverService in Thunderbird Library domain
1..1 has member variable of 1..1 is member variable of

Is analysed by R1 1..1 analyses 1..1

userPatternList predictionRuleList xObserverService

Is created and used by 1..1 R3 1..1 creates and uses

UserPatternList userPatternArray

requests predicted folder for an element of

PredictionRuleList predictionRuleArray

belongs to


Provides predicted folder to

belongs to 1..1



PredictedMailItemList in EmailServer domain


Relationship 'R3' between Folder and PredictedMailItem in EmailServer domain





UserPattern xFolder nSum
1..1 is member variable of

PredictionRule xFolder

is member variable of


1..1 has member variable of

nsIMsgFolder in Thunderbird Library domain

1..1 has member variable of

Implementation issue

Complexity of Thunderbird

Many languages : XUL, Javascript and XPCOM Numerous global variables and global functions scattered in 764 files Thunderbird library : XPCOM components No documentation about the structure of Thunderbird, only some sample source codes





Limitation with Thunderbird : global variable gDBView returned by Thunderbird library

Can not modify the appearance of UI Account -> Folder -> Email items (Impossible) Email items shown by UI -> find folder using Thunderbird functions which internally use XPCOM components



Evaluation and Test

Evaluation for Requirement
● ● ●

Check list to take a look at each requirement item All requirement items are satisfied Some enhancement is required Event -> check functions if the System works correctly No significant errors.




Plan / Management
● ● ● ● ● ● ● ●

Stage Documentation Req. Specification Background Research Requirement Analysis Modelling Implementation Test / Acceptance

weeks : 15 (13) : 2 : 6 (5) : 4 : 2 : 5 (4) : 2

Conclusion and Future work
● ●

Complexity of Thunderbird Flexible design and source code

The End
● ●

Thank you very much Question and Suggestion

To top