Reactive Vega: A Streaming Dataflow Architecture for Declarative Interactive Visualization

We present Reactive Vega, a system architecture that provides the first robust and comprehensive treatment of declarative visual and interaction design for data visualization. Starting from a single declarative specification, Reactive Vega constructs a dataflow graph in which input data, scene graph elements, and interaction events are all treated as first-class streaming data sources. To support expressive interactive visualizations that may involve time-varying scalar, relational, or hierarchical data, Reactive Vega's dataflow graph can dynamically re-write itself at runtime by extending or pruning branches in a data-driven fashion. We discuss both compile- and run-time optimizations applied within Reactive Vega, and share the results of benchmark studies that indicate superior interactive performance to both D3 and the original, non-reactive Vega system.

[1]  Frederick Reiss,et al.  TelegraphCQ: continuous dataflow processing , 2003, SIGMOD '03.

[2]  Qiang Chen,et al.  Aurora : a new model and architecture for data stream management ) , 2006 .

[3]  John T. Stasko,et al.  Mental Models, Visual Reasoning and Interaction in Information Visualization: A Top-down Perspective , 2010, IEEE Transactions on Visualization and Computer Graphics.

[4]  Pat Hanrahan,et al.  Polaris: a system for query, analysis and visualization of multi-dimensional relational databases , 2000, IEEE Symposium on Information Visualization 2000. INFOVIS 2000. Proceedings.

[5]  Chris Weaver Building Highly-Coordinated Visualizations in Improvise , 2004, IEEE Symposium on Information Visualization.

[6]  Arvind Satyanarayan,et al.  Declarative interaction design for data visualization , 2014, UIST.

[7]  John T. Stasko,et al.  The Science of Interaction , 2009, Inf. Vis..

[8]  Jeffrey Heer,et al.  imMens: Real‐time Visual Querying of Big Data , 2013, Comput. Graph. Forum.

[9]  Haim Levkowitz,et al.  Reactive data visualizations , 2015, Electronic Imaging.

[10]  Joseph M. Hellerstein,et al.  Eddies: continuously adaptive query processing , 2000, SIGMOD '00.

[11]  Kanit Wongsuphasawat,et al.  Voyager: Exploratory Analysis via Faceted Browsing of Visualization Recommendations , 2016, IEEE Transactions on Visualization and Computer Graphics.

[12]  Stephen Chong,et al.  Asynchronous functional reactive programming for GUIs , 2013, PLDI.

[13]  Jeffrey Heer,et al.  Protovis: A Graphical Toolkit for Visualization , 2009, IEEE Transactions on Visualization and Computer Graphics.

[14]  HeerJeffrey,et al.  D3 Data-Driven Documents , 2011 .

[15]  Arvind Satyanarayan,et al.  Lyra: An Interactive Visualization Design Environment , 2014, Comput. Graph. Forum.

[16]  Mark Bailey,et al.  The Grammar of Graphics , 2007, Technometrics.

[17]  Jeffrey Heer,et al.  Declarative Language Design for Interactive Visualization , 2010, IEEE Transactions on Visualization and Computer Graphics.

[18]  Jonathan Edwards,et al.  Coherent reaction , 2009, OOPSLA Companion.

[19]  Brad A. Myers Separating application code from toolkits: eliminating the spaghetti of call-backs , 1991, UIST '91.

[20]  Neville Moray Psychological mechanisms and models in ergonomics , 2005 .

[21]  Hadley Wickham,et al.  ggplot2 - Elegant Graphics for Data Analysis (2nd Edition) , 2017 .

[22]  Philip J. Guo Online python tutor: embeddable web-based program visualization for cs education , 2013, SIGCSE '13.

[23]  Ying Xing,et al.  The Design of the Borealis Stream Processing Engine , 2005, CIDR.

[24]  Carlos Eduardo Scheidegger,et al.  Nanocubes for Real-Time Exploration of Spatiotemporal Datasets , 2013, IEEE Transactions on Visualization and Computer Graphics.

[25]  Shriram Krishnamurthi,et al.  Embedding Dynamic Dataflow in a Call-by-Value Language , 2006, ESOP.

[26]  Jeffrey Heer,et al.  SpanningAspectRatioBank Easing FunctionS ArrayIn ColorIn Date Interpolator MatrixInterpola NumObjecPointI Rectang ISchedu Parallel Pause Scheduler Sequen Transition Transitioner Transiti Tween Co DelimGraphMLCon IData JSONCon DataField DataSc Dat DataSource Data DataUtil DirtySprite LineS RectSprite , 2011 .

[27]  Wolfgang De Meuter,et al.  A survey on reactive programming , 2013, CSUR.

[28]  Jennifer Widom,et al.  STREAM: The Stanford Data Stream Management System , 2016, Data Stream Management.

[29]  John T. Stasko,et al.  Toward a Deeper Understanding of the Role of Interaction in Information Visualization , 2007, IEEE Transactions on Visualization and Computer Graphics.

[30]  Christopher Collins,et al.  DimpVis: Exploring Time-varying Information Visualizations by Direct Manipulation , 2014, IEEE Transactions on Visualization and Computer Graphics.

[31]  Allen Newell,et al.  The model human processor: An engineering model of human performance. , 1986 .

[32]  Paul Hudak,et al.  Event-Driven FRP , 2002, PADL.

[33]  William E. Lorensen,et al.  The design and implementation of an object-oriented toolkit for 3D graphics and visualization , 1996, Proceedings of Seventh Annual IEEE Visualization '96.

[34]  Joseph A. Cottam,et al.  Stencil: A Conceptual Model for Representation and Interaction , 2008, 2008 12th International Conference Information Visualisation.

[35]  Lloyd Treinish,et al.  An extended data-flow architecture for data analysis and visualization , 1995, COMG.

[36]  Shriram Krishnamurthi,et al.  Flapjax: a programming language for Ajax applications , 2009, OOPSLA '09.

[37]  Michael Stonebraker,et al.  Dynamic Generation and Prefetching of Data Chunks for Exploratory Visualization , 2014 .

[38]  Maria Kutar,et al.  Cognitive Dimensions of Notations: Design Tools for Cognitive Technology , 2001, Cognitive Technology.