This artifact provides the implementation of dappl
and surrounding experiments.
These experiments require a working Docker installation. This artifact was tested by the authors on x86 Ubuntu 22.04 and ARM macOS. Instructions will assume a Linux-like shell environment for running command to set up the container.
To run full experiments, expect a server with >=512GB of RAM to take about 12 hours.
- Get a working docker installation.
- Run the following commands in a shell to pull the container from DockerHub:
docker pull minsungc/dappl:oopsla_2025
docker run -it --rm --platform linux/amd64 minsungc/dappl:oopsla_2025
- Once in the container,
cd
in to thedappl/
folder and run the commanddappl
. You should get thedappl
help page. If not, runalias dappl='./dappl/_build/install/default/bin/dappl'
and try again.
WARNING: the image is rather large in size and requires the linux/amd64 architecture. The build may fail if there is not enough disk space (~10gb) or if the architecture is unspecified.
Several example dappl programs are given in the examples/
folder.
To run your own dappl
program, or one from the examples, type in the container
dappl run $FILE
where $FILE is the path to your .dappl
file.
There are also optional debug and caching options available for toggle; type dappl run -help
for details.
Replicating the experiments is expensive, requiring about 12 wall clock hours on ~512GB of RAM and an AMD EPYC CPU. A server or workstation is recommended.
To replicate experiments, type into the console
python3 experiment.py
If you would like to see a specific experiment ran, comment out the other experiments in experiment.py
.
The resulting numbers are stored in a .csv file in the numbers/
folder.
The "kick the tires" scripts replicates a small fraction of the Bayesian network experiments in Section 6.1 of the paper. To do this, run
./kick_the_tires.sh
On an ARM Mac with no other processes, this took about 7 minutes to run.
The resulting numbers are stored in a .csv file in the numbers/
folder.
bin/
: command line tooling.derkinderen/
: scripts from Derkinderen et al, ECAI 2020.examples/
: examples of dappl programs.experiments/
: Python files for automated experimentation and result outputlib/
: the lexer, parser, and interpretertestgen/
: the main test generation tool. within:bn/
houses different bayesian networks that can be generatedmdp/
houses the DR benchmarkladder
houses the network ladder diagnosis benchmarksgrid/
houses the gridworld benchmarks