๐ค AI Summary
This work proposes Plainbook, a natural languageโcentric data science notebook designed to lower the barrier to entry for non-programmer researchers hindered by the code dependency of traditional Jupyter Notebooks. Plainbook automatically translates user-provided natural language descriptions into executable code while ensuring interpretability and reproducibility through a linear execution semantics and a snapshot-based kernel mechanism. By integrating both cell-level and global value validation, the system enables trustworthy, verifiable interactive data analysis without requiring users to write code manually. This approach establishes a novel paradigm that significantly democratizes access to data science for non-programming practitioners.
๐ Abstract
Jupyter Notebooks have become widely adopted in data science, as they allow the sharing of reproducible computational analysis. They are, however, accessible only to people who understand computer code. To reach the broader audience of scientists interested in data analysis and computation, but unfamiliar with code, we introduce Plainbook, notebooks centered on natural language rather than code.
Plainbook is based on two principles: promote the natural language descriptions, and verify the values. In plainbook, the natural language descriptions are preserved, rather than the resulting code; the code is generated automatically from the cell descriptions. As natural language is read top to bottom, Plainbook adopts a linear execution semantics, in which cells are guaranteed to be executed in the order in which they appear; there is no "hidden state" or out-of-order execution as in Jupyter. To allow users who may not understand code to verify the correctness of the computation, we have built into Plainbook verification mechanisms centered on values and value inspection. These include mechanisms that focus on individual cells, akin to unit tests, as well as global mechanisms. Both the linear execution semantics, and the verification mechanisms, are underpinned by a snapshot kernel that caches execution states and makes execution and verification efficient.