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...
Saved in:
| Main Authors: | , , |
|---|---|
| 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 |