GraphPPL.jl: A Probabilistic Programming Language for Graphical Models

This paper presents GraphPPL.jl, a novel probabilistic programming language designed for graphical models. GraphPPL.jl uniquely represents probabilistic models as factor graphs. A notable feature of GraphPPL.jl is its model nesting capability, which facilitates the creation of modular graphical mode...

Full description

Saved in:
Bibliographic Details
Main Authors: Wouter W. L. Nuijten, Dmitry Bagaev, Bert de Vries
Format: Article
Language:English
Published: MDPI AG 2024-10-01
Series:Entropy
Subjects:
Online Access:https://www.mdpi.com/1099-4300/26/11/890
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1850267538734186496
author Wouter W. L. Nuijten
Dmitry Bagaev
Bert de Vries
author_facet Wouter W. L. Nuijten
Dmitry Bagaev
Bert de Vries
author_sort Wouter W. L. Nuijten
collection DOAJ
description This paper presents GraphPPL.jl, a novel probabilistic programming language designed for graphical models. GraphPPL.jl uniquely represents probabilistic models as factor graphs. A notable feature of GraphPPL.jl is its model nesting capability, which facilitates the creation of modular graphical models and significantly simplifies the development of large (hierarchical) graphical models. Furthermore, GraphPPL.jl offers a plugin system to incorporate inference-specific information into the graph, allowing integration with various well-known inference engines. To demonstrate this, GraphPPL.jl includes a flexible plugin to define a Constrained Bethe Free Energy minimization process, also known as variational inference. In particular, the Constrained Bethe Free Energy defined by GraphPPL.jl serves as a potential inference framework for numerous well-known inference backends, making it a versatile tool for diverse applications. This paper details the design and implementation of GraphPPL.jl, highlighting its power, expressiveness, and user-friendliness. It also emphasizes the clear separation between model definition and inference while providing developers with extensibility and customization options. This establishes GraphPPL.jl as a high-level user interface language that allows users to create complex graphical models without being burdened with the complexity of inference while allowing backend developers to easily adopt GraphPPL.jl as their frontend language.
format Article
id doaj-art-06c751b46d43423e9fd0feec783d3f7b
institution OA Journals
issn 1099-4300
language English
publishDate 2024-10-01
publisher MDPI AG
record_format Article
series Entropy
spelling doaj-art-06c751b46d43423e9fd0feec783d3f7b2025-08-20T01:53:45ZengMDPI AGEntropy1099-43002024-10-01261189010.3390/e26110890GraphPPL.jl: A Probabilistic Programming Language for Graphical ModelsWouter W. L. Nuijten0Dmitry Bagaev1Bert de Vries2Department of Electrical Engineering, Eindhoven University of Technology, 5612 AE Eindhoven, The NetherlandsDepartment of Electrical Engineering, Eindhoven University of Technology, 5612 AE Eindhoven, The NetherlandsDepartment of Electrical Engineering, Eindhoven University of Technology, 5612 AE Eindhoven, The NetherlandsThis paper presents GraphPPL.jl, a novel probabilistic programming language designed for graphical models. GraphPPL.jl uniquely represents probabilistic models as factor graphs. A notable feature of GraphPPL.jl is its model nesting capability, which facilitates the creation of modular graphical models and significantly simplifies the development of large (hierarchical) graphical models. Furthermore, GraphPPL.jl offers a plugin system to incorporate inference-specific information into the graph, allowing integration with various well-known inference engines. To demonstrate this, GraphPPL.jl includes a flexible plugin to define a Constrained Bethe Free Energy minimization process, also known as variational inference. In particular, the Constrained Bethe Free Energy defined by GraphPPL.jl serves as a potential inference framework for numerous well-known inference backends, making it a versatile tool for diverse applications. This paper details the design and implementation of GraphPPL.jl, highlighting its power, expressiveness, and user-friendliness. It also emphasizes the clear separation between model definition and inference while providing developers with extensibility and customization options. This establishes GraphPPL.jl as a high-level user interface language that allows users to create complex graphical models without being burdened with the complexity of inference while allowing backend developers to easily adopt GraphPPL.jl as their frontend language.https://www.mdpi.com/1099-4300/26/11/890Bayesian inferencefactor graphsnested modelsprobabilistic programming
spellingShingle Wouter W. L. Nuijten
Dmitry Bagaev
Bert de Vries
GraphPPL.jl: A Probabilistic Programming Language for Graphical Models
Entropy
Bayesian inference
factor graphs
nested models
probabilistic programming
title GraphPPL.jl: A Probabilistic Programming Language for Graphical Models
title_full GraphPPL.jl: A Probabilistic Programming Language for Graphical Models
title_fullStr GraphPPL.jl: A Probabilistic Programming Language for Graphical Models
title_full_unstemmed GraphPPL.jl: A Probabilistic Programming Language for Graphical Models
title_short GraphPPL.jl: A Probabilistic Programming Language for Graphical Models
title_sort graphppl jl a probabilistic programming language for graphical models
topic Bayesian inference
factor graphs
nested models
probabilistic programming
url https://www.mdpi.com/1099-4300/26/11/890
work_keys_str_mv AT wouterwlnuijten graphppljlaprobabilisticprogramminglanguageforgraphicalmodels
AT dmitrybagaev graphppljlaprobabilisticprogramminglanguageforgraphicalmodels
AT bertdevries graphppljlaprobabilisticprogramminglanguageforgraphicalmodels