The probabilistic programming language powering RxInfer.jl
I designed and built GraphPPL.jl x ~ Normal(0, 1) into a factor graph containing the necessary information to perform inference. On top of this engine, GraphPPL.jl implements nested model specification: users can compose models hierarchically, treating any submodel as a building block inside a larger model. This makes model specification modular and reusable, which is especially powerful for models with hierarchical structure.
RxInfer.jl GraphPPL.jl is the model specification frontend of RxInfer.jl: every model written by an RxInfer user passes through the engine I built. The nested model specification carries over directly, making model specification in RxInfer.jl concise, modular, and reusable.