NetLens:
Iterative Exploration of 
Content-Actor Network Data 
Challenges of  
Network Data Visualization
Challenges of  
Network Data Visualization
•	Complex Analytic Tasks 
•	Incremental data exploration
•	Iterative query refinement
•	Scalability
•	Common simple UI components 
e.g. histogram and lists
•	Generality
•	Apply to any dataset matching Content-Actor model
e.g. digital library, photo collections, email collections, case law, etc.
Data Analysis (Content-Actor Model)
Data Analysis (Content-Actor Model)
Data Analysis (Content-Actor Model)
Data Analysis (Content-Actor Model)
DEMO
Screenshots at www.cs.umd.edu/hcil/netlens 
Video at www.cs.umd.edu/hcil/netlens/VASTvideo

Task Analysis
Task Analysis
•	Single step tasks
•	How many papers on “User Study” were published in 1998? 
•	Who are the authors of the papers on “Virtual Reality”, which were published at the CHI 99 conference? 
•	Which paper is the most frequently cited by the papers published at the CHI 04 conference? 
•	Which author is most frequently cited in the “InfoVis” topic?
•	How many papers were published by UMD HCIL people? 
•	Who are the authors whose nationality is Korea? 
Task Analysis
•	Multiple step tasks
•	Evaluate individuals:
	- how many papers were self-referenced? 
	- how frequently was each paper referenced by other papers?
•	Identify communities:
	- what are the major paper topics published by UMD HCIL? and who in this group has the most papers in that topic?
	- how do UMD HCIL’s research interests change over time? and who in this group made that change?
•	Find experts (to review papers or come to workshop):
	- who wrote the most papers in the InfoVis topic? and how many papers cited his papers?
	- whose paper in the InfoVis area is most frequently referenced by other papers?
•	Learning about a new topic (to find a good PhD topic):
	- which topic has growing publications? and who contributed most to this topic last 3 years?
	- what are the other topics the authors in InfoVis area also get interested in?
•	Where should I go on a sabbatical?
	- which country (or research group)’s authors most frequently reference my papers?
Design Challenges
•	History and Integrated Help
•	Sequence of interactions to accomplish a task 
(lost in exploration)
•	“How did I get here?”
•	“What does the current filtered dataset mean?”
Design Challenges
•	Multi-layered Interface
•	Users do not need all the windows 
•	Complexity of data and tasks
•	Computation efficiency
•	Users’ usage levels and their preferences
•	Etc.
Design Challenges
•	Data Export
•	Integration of graph visualizing tool TreePlus
•	Exporting methods
•	Windows clipboard
•	Internal graph class object
•	Xml documents

NetLens Extension
NetLens Extension
NetLens Data Schema
NetLens System Architecture
•	NetLens
•	Written in C#, Piccolo toolkit
•	Database Server
•	MySQL
•	ADO.NET driver for MySQL
•	MySQL connector/NET 1.0.7 
•	Web Server
•	Mac OS X Server
•	Web API
•	CGI, JSP (e.g. email search, people’s bio, etc.)

Evaluation
•	Heuristic Evaluation by NIST
•	Possible directions:
•	Usability
•	Measure usability
•	Speed, performance, 
•	Learnability
•	Error rates
•	Power
•	Comparing range and complexity of possible queries
•	SQL queries?
•	Generality
•	How easy it is to apply new datasets to NetLens
PhotoMesa
Browse, Annotate, and Search Digital Images
PhotoMesa Image Browsing
•	Zoomable User Interface
PhotoMesa Image Browsing
•	Zoomable User Interface
PhotoMesa Image Browsing
•	Zoomable User Interface
PhotoMesa Annotating
PhotoMesa Annotating
PhotoMesa Searching
PhotoMesa Photo Sharing
•	Upload
•	Photos
•	Metadata e.g.) people, category, photo info, etc.
•	Remove
•	Update
•	Search
•	Web Services
•	Browse with web browser
•	Add comments
PhotoMesa Data Schema
PhotoMesa SQL Query
•	Free Text Search (Find photos containing word “kang”)

SELECT Photos.*
FROM (Photos INNER JOIN (Categories INNER JOIN PhotosCategories ON Categories.categoryname = PhotosCategories.categoryname) ON Photos.url = PhotosCategories.url) INNER JOIN (People INNER JOIN PhotosPeople ON People.personname = PhotosPeople.personname) ON Photos.url = PhotosPeople.url
WHERE (((PhotosPeople.personname) Like "*kang*") OR ((Photos.url) Like "*kang*") OR ((Photos.created) Like "*kang*") OR ((Photos.uploaded) Like "*kang*") OR ((Photos.description) Like "*kang*")) OR (((PhotosCategories.categoryname) Like "*kang*"));
PhotoMesa SQL Query
•	Add Photo

INSERT INTO Photos (url, created, uploaded, description, photomark, thumbnail, width, height) Values(“url”, “2006-04-20", “2006-04-20", “hyunmo’s trip to Seoul”, 1280, 1024);

•	Add People

INSERT INTO PhotosPeople (url, personname, x, y, time) Values(“url”, “hyunmo kang“, “0.1234”, “0.789” “2006-04-20");
INSERT INTO People (personname, lastname, firstname) Values(“hyunmo kang”, “kang”, “hyunmo”);
PhotoMesa System Architecture
•	PhotoMesa Client
•	Written in C#, Piccolo toolkit
•	Database Server
•	MySQL
•	ADO.NET driver for MySQL
•	MySQL connector/NET 1.0.7 
•	Web Server
•	Apache
•	Web API
•	PHP (photo upload, web services)

Questions?
•	More visualization projects are available at
http://www.cs.umd.edu/hcil

•	PhotoMesa
http://windsorinterfaces.com
•	NetLens
http://www.cs.umd.edu/hcil/netlens

•	Email: kang@cs.umd.edu