60 likes | 141 Views
The InfoVis Toolkit. Jean-Daniel Fekete INRIA Futurs/LRI, France Jean-Daniel.Fekete@inria.fr http://www.lri.fr/~fekete/InfovisToolkit. Goals. Simplify the integration of Information Visualization techniques in Java/Swing applications
E N D
The InfoVis Toolkit Jean-Daniel FeketeINRIA Futurs/LRI, FranceJean-Daniel.Fekete@inria.frhttp://www.lri.fr/~fekete/InfovisToolkit
Goals • Simplify the integration of Information Visualization techniques in Java/Swing applications • Simplify the creation and experimentation of new visualization techniques • Simplify the creation and experimentation of new interaction techniques • Provide a support for teaching InfoVis • Provide a base for InfoVis student projects • Scales well in term of space and speed
Internal Structure • Data structures are composed of Columns • Columns contain homogeneous data • Contain metadata • Support notification • Support formatting for input and output • Support missing values • Efficient in speed and memory usage • Data structures are based on tables • Attributes and topology explicitly represented as columns • Trees • Columns containing the parent, 1st child, next child, last child • Graphs (two tables for vertices and edges) • In vertex table: Outgoing edge list, ingoing edge list • In edge table: next edge on outgoing list, next edge in ingoing, in and out vertices
Results • Article at InfoVis 04 about the Toolkit and a user evaluation • Technical report about performance issues • Several projects • Monitoring of constraint-based systems • Software testing • Visualization of familiar data (new Desktop)
Problems • Separation of concerns • Data structure for graphs is complex when scalability and extensibility are required • Tulip has a good model • When a good framework exists, implementing parts is long, tedious and hard • Visualizations (layouts) • Rendering (labels, arrow ends, arcs shapes) • Components for “magic-lenses” (Fisheyes, excentric labels) • Components for Dynamic Queries (sliders et al.) • Components to configure and control visualizations • Readers and writers • Documentation …
Is there several ways to do it? • Looking at implementations, 2 ways • The good old object oriented way • The column-oriented way • The goals are the same for most projects • Same scales • Same platforms • Same languages (almost) • Should I continue by myself?