Improbable [0] is building (and has open-sourced) Keanu, "a general purpose probabilistic programming library built in Java", where Bayesian networks are represented as DAGs. It's feature list includes Probabilistic Programming Operators and Distributions, Auto-differentiation, Inference, Maximum a posteriori, Metropolis Hastings, Hamiltonian Monte Carlo, Sequential Monte Carlo (Particle Filtering), and Support for Kotlin. [1]