Skip to content

uwdata/boba

Repository files navigation

boba

Author and visualize multiverse analysis with ease.

Boba has a domain specific language (Boba DSL) for writing multiverse specifications, and a visual analysis interface (Boba Visualizer) for exploring multiverse outcomes. Boba comes with a command line tool to parse your DSL specification and generate universe scripts, execute all scripts with a single command, merges outputs into a table, and invoke the visualizer.

  • works with both python and R, and other scripting languages to come
  • handles simple parameter substitution as well as complex code flow dependency
  • offers interactive visualizations for exploring consequential decisions, uncertainty, model fit, and more

image

image

image

image

Installation

You might download and install the latest version of this software from the Python package index (PyPI):

pip install --upgrade boba
pip install --upgrade boba-visualizer

Usage

To author your multiverse, please refer to the specification rules. Here is a simple example to get you started!

To parse your specification and generate actual scripts, invoke boba and pass in the path to your template script and your JSON spec:

boba compile --script template.py

To execute the multiverse, namely running all the generated scripts, use:

boba run --all

To start the Boba Visualizer after getting the intermediate output files, use:

boba-server

For more command line options, see CLI. For more information about the Boba Visualizer, see this project.

Examples

Citation

If you are interested in this work, please see our research paper and consider citing our work:

@misc{liu2020boba,
  title={Boba: Authoring and visualizing multiverse analyses},
  author={Yang Liu and Alex Kale and Tim Althoff and Jeffrey Heer},
  year={2020},
  eprint={2007.05551},
  archivePrefix={arXiv},
  primaryClass={cs.HC}
}