This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Declarative Language Design for Interactive Visualization
November/December 2010 (vol. 16 no. 6)
pp. 1149-1156
We investigate the design of declarative, domain-specific languages for constructing interactive visualizations. By separatingspecification from execution, declarative languages can simplify development, enable unobtrusive optimization, and supportretargeting across platforms. We describe the design of the Protovis specification language and its implementation within anobject-oriented, statically-typed programming language (Java). We demonstrate how to support rich visualizations without requiring atoolkit-specific data model and extend Protovis to enable declarative specification of animated transitions. To support cross-platformdeployment, we introduce rendering and event-handling infrastructures decoupled from the runtime platform, letting designers retargetvisualization specifications (e.g., from desktop to mobile phone) with reduced effort. We also explore optimizations such as runtimecompilation of visualization specifications, parallelized execution, and hardware-accelerated rendering. We present benchmark studiesmeasuring the performance gains provided by these optimizations and compare performance to existing Java-based visualizationtools, demonstrating scalability improvements exceeding an order of magnitude.

[1] M. Bostock and J. Heer, Protovis: A graphical toolkit for visualization. IEEETrans. Vis. and Comp. Graphics, 15 (6): 1121–1128, 2009.
[2] H. Chafi, Z. DeVito, A. Moors, T. Rompf, A. Sujeeth, P. Hanrahan, M. Odersky, and K. Olukotun, Language virtualization for heterogeneous parallel computing. In Onward!, 2010.
[3] J. A. Cottam and A. Lumsdaine, ThisStar: Declarative visualization prototype. In IEEE Information Visualization Posters, 2007.
[4] J. A. Cottam and A. Lumsdaine, Stencil: A conceptual model for representation and interaction. In International Information Visualisation Conference, pages 51–56, 2008.
[5] D. J. Duke, R. Borgo, M. Wallace, and C. Runciman, Huge data but small programs: Visualization design via multiple embedded DSLs. In Practical Aspects of Declarative Languages, pages 31–45. Springer, 2009.
[6] J.-D. Fekete, The Info Vis Toolkit. In IEEE InfoVis, pages 167–174, 2004.
[7] Flare. http :/flare.prefuse.org, March 2009.
[8] E. Gamma, R. Helm, R. Johnson, and J. M. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Upper Saddle River, NJ, 1994.
[9] J. Heer and M. Agrawala, Software design patterns for information visualization. IEEE Trans. Vis. and Comp. Graphics, 12 (5): 853–860, 2006.
[10] J. Heer, S. K. Card, and J. A. Landay, prefuse: a toolkit for interactive information visualization. In Proc. ACM CHI, pages 421–430, 2005.
[11] J. Heer and G. G. Robertson, Animated transitions in statistical data graphics. IEEETrans. Vis. and Comp. Graphics, 13 (6): 1240–1247, 2007.
[12] P. Hudak, Building domain-specific embedded languages. ACM Comput. Surv., 28 (4), 1996.
[13] S. Hudson and J. T. Stasko, Animation support in a user interface toolkit: Flexible, robust, and reusable abstractions. In ACM UIST, pages 57–67, 1993.
[14] H. W. Lie, Cascading Style Sheets. PhD thesis, University of Oslo, 2005.
[15] B. Lucas, G. D. Abram, N. S. Collins, D. A. Epstein, D. L. Gresh, and K. P. McAuliffe, An architecture for a scientific visualization system. In IEEE Visualization, pages 107–114. IEEE Computer Society Press, 1992.
[16] B. McDonnel and N. Elmqvist, Towards utilizing GPUs in information visualization: A model and implementation of image-space operations. IEEE Trans. Vis. and Comp. Graphics, 15 (6): 1105–1112, 2009.
[17] M. Mernik, J. Heering, and A. M. Sloane, When and how to develop domain-specific languages. ACM Comput. Surv., 37 (4): 316–344, 2005.
[18] A Pattern Language for Parallel Programming. http://parlab.eecs.berkeley.edu/wikipatterns, March 2009.
[19] H. Piringer, C. Tominski, P. Muigg, and W. Berger, A multi-threading architecture to support interactive visual exploration. IEEE Trans. Vis. and Comp. Graphics, 15 (6): 1113–1120, 2009.
[20] A. Slingsby, J. Dykes, and J. Wood, Configuring hierarchical layouts to address research questions. IEEE Trans. Vis. and Comp. Graphics, 15 (6): 977–984, 2009.
[21] C. Stolte, D. Tang, and P. Hanrahan, Polaris: A system for query, analysis, and visualization of multidimensional relational databases. IEEE Trans. Vis. and Comp. Graphics, 8: 52–65, 2002.
[22] F. B. Viégas, M. Wattenberg, F. van Ham, J. Kriss, and M. McKeon, Many Eyes: a site for visualization at internet scale. IEEE Trans. Vis. and Comp. Graphics, 13 (6): 1121–1128, 2007.
[23] C. E. Weaver, Building highly-coordinated visualizations in Improvise. In Proc. IEEE InfoVis, pages 159–166, 2004.
[24] H. Wickham, ggplot2: Elegant Graphics for Data Analysis. Springer, 2009.
[25] L. Wilkinson, The Grammar of Graphics (Statistics and Computing). Springer-Verlag, Secaucus, NJ, 2005.

Index Terms:
information visualization, user interfaces, toolkits, domain specific languages, declarative languages, optimization
Citation:
Jeffrey Heer, Michael Bostock, "Declarative Language Design for Interactive Visualization," IEEE Transactions on Visualization and Computer Graphics, vol. 16, no. 6, pp. 1149-1156, Nov.-Dec. 2010, doi:10.1109/TVCG.2010.144
Usage of this product signifies your acceptance of the Terms of Use.