Title: ASSIEME
1ASSIEME A Recommender System for Emacs
Extensions
- Raphael HoffmannCSE574, WIN0610/30/2013Univers
ity of Washington
2Outline
- Motivation
- Related Work
- Demo
- Architecture
- Recommendation Algorithm
- (Privacy)
- (Data Collection)
- (Future Work)
- Conclusion
3Motivation
- Users do not customizePeres05, Lane05,
Bhavnani00, Kay96, Oppermann94, Mackay91,
Carroll87, Nielsen86, Grudin85, Rosson83, Card80
- Users dont know about customizationsWulf01,
Nilsen93 - Users share customizations!Won04, Wulf01,
Gantt92, Mackay92, MacLean90
Who is using more than 3 Emacs or Firefox
extensions?
4Related Work
- Systems for Software UsersKahler01,
Ohsugi02 - Systems for Software Developers
- agile software developmentMcCarey05
- promote reuseYe02/05, Varadarajan02,
Klein01, Graedke99, ... - increase quality by making code
consistentCubranic05 - integrate information sources (e.g. news,
CVS)Cubranic03/04/05
5Demo
6Architecture
Client
Assieme EmacsExtension
record events
report events
recommend
install
3rd party Emacs Extension
Server
run
Emacs
Assieme Web Service
CollaborativeFiltering Alg.
use
send recommendation
written in Lisp
(
SOAP
use
Content-bsd. Filtering Alg.
store
retrieve
)
Database
written in Java
7Architecture - Client
Feature Detectors
command stream
SOAP CommunicationClient
UserModel
Emacs
filetype
typed keywords
menu use
8Architecture - Server
Collaborative Filtering Algorithm
UserId
Similar users have installed (similarity
based on set of installedextensions)
SOAP CommunicationClient
Captures long-term preferences
Fusion
Content-based Filtering Algorithm
In a similar context, many users have installed
UserModel
Captures short-term needs
9Architecture - Server
Collaborative Filtering Algorithm
UserId
UserId Extension Rating
21 abc.el 0
433 abc.el 1
21 back.el 1
532 google.el 0
14 google.el 1
Memory-basedCollaborative Filtering
SOAP CommunicationClient
Learn classifier for each extension
Content-based Filtering Algorithm
timestamp Feature1 Feature2 Extension Rating
11.01.05 0.1 0.9 abc.el 0
24.03.05 0.8 0.1 abc.el 1
14.04.05 0.7 0.3 back.el 1
15.04.05 0.2 0.2 google.el 0
02.06.05 0.5 0.4 google.el 1
SVM
UserModel
SVM
10Privacy
User chooses feature detectors that she wants
filetype-detector.el
data
records the file extensions ofall edited files,
e.g. .java, and transmits their frequencies
executed once for every fileopen and file save,
lowoverhead
load
Missing data replaced by mean values
popularity
high
Tradeoff between accuracy and privacy
11Creating the database
Seeds
Web Crawler
Custom Parsers
Emacs filetypeel 74 400 hits Firefox/Thunder
bird filetypexpi 250 000 hitsAdd-ins for MS
applications filetpyemsi 33 300 hits
extract title and code language
Custom Indexers
Index
12Future Work Ranking
(require )
(require )
(require )
(require )
(require )
(require )
(require )
- Components that are being heavily depended on may
be more important
13Future Work Ranking
Elisp extensions (Authorities)
elisp files
elisp files
elisp files
elisp files
elisp files
Web pages (Hubs)
- Exploit link structure (or author structure)
- PageRank fails (no outlinks in extensions)
- Use EM approach
- Compute value of web pages based on extensions
- Compute value of extensions based on web pages
14Future Work Platform
- extend to different application software
- Firefox and Thunderbird Extensions
- Greasemonkey Scripts
- Microsoft Office Add-ins
- Eclipse Plugins
- Latex Packages
- WindowsXP tools (zip/unzip, viewers,)
- provide universal XML interface
15Conclusion
- thousands of software components online
- no efficient search interfaces mechanisms
available - collaborative and content-based filtering are
promising - privacy issue can be solved