paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Visualization by example

基于示例的可视化
POPL 4(POPL)2019匹配度 2/10 · 该论文属于程序合成与 DSL 领域,使用双向程序分析处理不精确规约,但并未涉及用户关注的静态分析×ML/Agent、LLM/Agent 改进静态分析/形式化验证、浮点程序分析或贝叶斯程序分析等核心交叉方向。引用 36 inbox
Chenglong Wang, Yu Feng, Rastislav Bodik, Alvin Cheung, Isil Dillig
crossref: 2026-09-10

AI 速览

一句话:提出组合式示例驱动可视化合成,将任务分解为两个 DSL 合成问题,并用双向程序分析处理不精确中间规约。

从复杂数据集生成有用可视化并不容易,用户不仅需要理解现有可视化库,还要重塑和聚合数据并组合视觉元素。本文提出示例驱动的可视化合成:给定输入数据集和一个展示如何可视化其中很小数据子集的视觉草图,自动生成能可视化整个数据集的程序。由于许多任务同时涉及数据整理与绘图,作者将端到端合成分解为两个不同 DSL 上的子问题;针对分解得到的中间规约必然不精确的问题,采用双向程序分析来缓解复杂性。该技术实现为 Viser。在从在线论坛和教程收集的 80 多个可视化任务上,Viser 在 600 秒内解决 84 个基准;在可解任务中,70% 的期望可视化出现在其生成的前 5 个结果中。

问题
如何从用户对很小数据子集的视觉草图,自动合成可作用于整个数据集的可视化程序,并处理其中数据整理与绘图交织、中间规约不精确的问题。
方法
提出组合式 visualization-by-example 技术,将端到端任务分解为两个不同 DSL 上的合成问题,并利用双向程序分析应对不精确中间规约;实现工具 Viser。
评估
在从在线论坛和教程收集的 80 多个可视化任务上评估,Viser 在 600 秒内解决 84 个基准,且可解任务中 70% 的期望可视化进入前 5。
原文摘要(Abstract)

While visualizations play a crucial role in gaining insights from data, generating useful visualizations from a complex dataset is far from an easy task. In particular, besides understanding the functionality provided by existing visualization libraries, generating the desired visualization also requires reshaping and aggregating the underlying data as well as composing different visual elements to achieve the intended visual narrative. This paper aims to simplify visualization tasks by automatically synthesizing the required program from simple visual sketches provided by the user. Specifically, given an input data set and a visual sketch that demonstrates how to visualize a very small subset of this data, our technique automatically generates a program that can be used to visualize the entire data set. From a program synthesis perspective, automating visualization tasks poses several challenges that are not addressed by prior techniques. First, because many visualization tasks require data wrangling in addition to generating plots from a given table, we need to decompose the end-to-end synthesis task into two separate sub-problems. Second, because the intermediate specification that results from the decomposition is necessarily imprecise, this makes the data wrangling task particularly challenging in our context. In this paper, we address these problems by developing a new compositional visualization-by-example technique that (a) decomposes the end-to-end task into two different synthesis problems over different DSLs and (b) leverages bi-directional program analysis to deal with the complexity that arises from having an imprecise intermediate specification. We have implemented our visualization-by-example approach in a tool called Viser and evaluate it on over 80 visualization tasks collected from on-line forums and tutorials. Viser can solve 84 of these benchmarks within a 600 second time limit, and, for those tasks that can be solved, the desired visualization is among the top-5 generated by Viser in 70% of the cases.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot561,
  title = {Visualization by example},
  author = {Chenglong Wang and Yu Feng and Rastislav Bodik and Alvin Cheung and Isil Dillig},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {4},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3371117}
}