一句话:揭示 Jupyter Notebook 因单元格执行顺序任意而普遍不可复现,并关注其评估与恢复问题。
Jupyter Notebook 包含可执行代码、公式、可视化和叙述文本,是传播科学计算的重要载体。然而其代码单元格可以任意顺序执行,常出现标识符先用后定义、结果先于计算的情况,导致 notebook 难以复现。论文关注 notebook 的可复现性评估与恢复问题,对 936 个原则上可执行的已发布 notebook 进行样本分析,检验直接方法能否复现。结果显示,73% 的 notebook 无法用直接方法复现,需要人工推断甚至猜测作者创建单元格的顺序。该工作揭示 notebook 隐式执行顺序对可复现性的关键影响,并为评估和恢复可复现性提供了经验依据。
Jupyter notebooks---documents that contain live code, equations, visualizations, and narrative text---now are among the most popular means to compute, present, discuss and disseminate scientific findings. In principle, Jupyter notebooks should easily allow to reproduce and extend scientific computations and their findings; but in practice, this is not the case. The individual code cells in Jupyter notebooks can be executed in any order, with identifier usages preceding their definitions and results preceding their computations. In a sample of 936 published notebooks that would be executable in principle, we found that 73% of them would not be reproducible with straightforward approaches, requiring humans to infer (and often guess) the order in which the authors created the cells.