Interactive visualization design and research have primarily focused on local data and synchronous events. However, for more complex use cases---e.g., remote database access and streaming data sources---developers must grapple with distributed data and asynchronous events. Currently, constructing these use cases is difficult and time-consuming; developers are forced to operationally program low-level details like asynchronous database querying and reactive event handling. This approach is in stark contrast to modern methods for browser-based interactive visualization, which feature high-level declarative specifications. In response, we present DIEL, a declarative framework that supports asynchronous events over distributed data. Like many declarative visualization languages, DIEL developers need only specify what data they want, rather than procedural steps for how to assemble it; uniquely, DIEL models asynchronous events (e.g., user interactions or server responses) as streams of data that are captured in event logs. To specify the state of a user interface at any time, developers author declarative queries over the data and event logs; DIEL compiles and optimizes a corresponding dataflow graph, and synthesizes necessary low-level distributed systems details. We demonstrate DIEL's performance and expressivity through ex-ample interactive visualizations that make diverse use of remote data and coordination of asynchronous events. We further evaluate DIEL's usability using the Cognitive Dimensions of Notations framework, revealing wins such as ease of change, and compromises such as premature commitments.
翻译:交互式可视化设计和研究主要侧重于本地数据和同步事件。然而,对于更复杂的使用案例-例如远程数据库访问和流数据源-开发者来说,远程数据库访问和流数据源-开发者必须与分布式的数据和无同步事件打交道。目前,构建这些使用案例既困难又耗时;开发者被迫采用不同步数据库查询和反应事件处理等低级别操作程序细节。这种方法与基于浏览器的互动可视化现代方法形成鲜明的对比,这种方法具有高层次声明性规格。作为回应,我们提出了DIEL(DIEL),这是一个声明性框架,用以支持分布式数据的不同步事件。像许多宣示性可视化语言一样,DIEL(DIEL)开发者只需要说明他们想要的数据,而不是如何组装的程序性步骤;独特的,DIEL(例如用户互动或服务器反应)模式,作为事件日志中收集的数据流,我们任何时候的用户互换和用户互换状态。我们指定,开发者在必要的数据和事件远程记录上进行宣示性查询;DIEL(我们通过低透明性数据系统)汇编和优化数据流数据流,以进一步展示数据流分析。