{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T01:32:44Z","timestamp":1760146364177,"version":"build-2065373602"},"reference-count":46,"publisher":"MDPI AG","issue":"11","license":[{"start":{"date-parts":[[2024,10,22]],"date-time":"2024-10-22T00:00:00Z","timestamp":1729555200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"ROBUST project","award":["KICH3.LTP.20.006","LTP KIC 2020-2023","TKI2112P09"],"award-info":[{"award-number":["KICH3.LTP.20.006","LTP KIC 2020-2023","TKI2112P09"]}]},{"name":"Dutch Research Council (NWO)","award":["KICH3.LTP.20.006","LTP KIC 2020-2023","TKI2112P09"],"award-info":[{"award-number":["KICH3.LTP.20.006","LTP KIC 2020-2023","TKI2112P09"]}]},{"name":"Holland High Tech","award":["KICH3.LTP.20.006","LTP KIC 2020-2023","TKI2112P09"],"award-info":[{"award-number":["KICH3.LTP.20.006","LTP KIC 2020-2023","TKI2112P09"]}]},{"name":"AUTO-AR project","award":["KICH3.LTP.20.006","LTP KIC 2020-2023","TKI2112P09"],"award-info":[{"award-number":["KICH3.LTP.20.006","LTP KIC 2020-2023","TKI2112P09"]}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Entropy"],"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.3390\/e26110890","type":"journal-article","created":{"date-parts":[[2024,10,22]],"date-time":"2024-10-22T11:31:57Z","timestamp":1729596717000},"page":"890","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["GraphPPL.jl: A Probabilistic Programming Language for Graphical Models"],"prefix":"10.3390","volume":"26","author":[{"ORCID":"https:\/\/orcid.org\/0009-0007-0689-9300","authenticated-orcid":false,"given":"Wouter W. L.","family":"Nuijten","sequence":"first","affiliation":[{"name":"Department of Electrical Engineering, Eindhoven University of Technology, 5612 AE Eindhoven, The Netherlands"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9655-7986","authenticated-orcid":false,"given":"Dmitry","family":"Bagaev","sequence":"additional","affiliation":[{"name":"Department of Electrical Engineering, Eindhoven University of Technology, 5612 AE Eindhoven, The Netherlands"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0839-174X","authenticated-orcid":false,"given":"Bert","family":"de Vries","sequence":"additional","affiliation":[{"name":"Department of Electrical Engineering, Eindhoven University of Technology, 5612 AE Eindhoven, The Netherlands"},{"name":"GN Hearing, 5612 AB Eindhoven, The Netherlands"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2024,10,22]]},"reference":[{"key":"ref_1","unstructured":"Phan, D., Pradhan, N., and Jankowiak, M. (2019). Composable Effects for Flexible and Accelerated Probabilistic Programming in NumPyro. arXiv."},{"key":"ref_2","unstructured":"Ge, H., Xu, K., and Ghahramani, Z. (2018, January 9\u201311). Turing: A Language for Flexible Probabilistic Inference. Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics, PMLR, Playa Blanca, Spain. ISSN 2640-3498."},{"key":"ref_3","doi-asserted-by":"crossref","first-page":"100133","DOI":"10.1016\/j.comtox.2020.100133","article-title":"A Bayesian neural network for toxicity prediction","volume":"16","author":"Semenova","year":"2020","journal-title":"Comput. Toxicol."},{"key":"ref_4","first-page":"5921522","article-title":"Bayesian weighted time-lapse full-waveform inversion using a receiver-extension strategy","volume":"62","author":"Karsou","year":"2024","journal-title":"IEEE Trans. Geosci. Remote. Sens."},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"357","DOI":"10.1016\/j.tics.2010.05.004","article-title":"Probabilistic models of cognition: Exploring representations and inductive biases","volume":"14","author":"Griffiths","year":"2010","journal-title":"Trends Cogn. Sci."},{"key":"ref_6","unstructured":"Spiegelhalter, D., Thomas, A., Best, N., and Gilks, W. (1996). BUGS 0.5: Bayesian inference using Gibbs sampling manual (version ii). MRC Biostatistics Unit, Institute of Public Health, Citeseer."},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"530","DOI":"10.3102\/1076998615606113","article-title":"Stan: A Probabilistic Programming Language for Bayesian Inference and Optimization","volume":"40","author":"Gelman","year":"2015","journal-title":"J. Educ. Behav. Stat."},{"key":"ref_8","doi-asserted-by":"crossref","unstructured":"Cox, M., van de Laar, T., and de Vries, B. (2018, January 5\u20136). ForneyLab. jl: Fast and flexible automated inference through message passing in Julia. Proceedings of the International Conference on Probabilistic Programming, Cambridge, MA, USA.","DOI":"10.3389\/frobt.2019.00020"},{"key":"ref_9","first-page":"1419","article-title":"BayesPy: Variational Bayesian inference in Python","volume":"17","author":"Luttinen","year":"2016","journal-title":"J. Mach. Learn. Res."},{"key":"ref_10","doi-asserted-by":"crossref","first-page":"5161","DOI":"10.21105\/joss.05161","article-title":"RxInfer: A Julia package for reactive real-time Bayesian inference","volume":"8","author":"Bagaev","year":"2023","journal-title":"J. Open Source Softw."},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"216","DOI":"10.1016\/0370-2693(87)91197-X","article-title":"Hybrid Monte Carlo","volume":"195","author":"Duane","year":"1987","journal-title":"Phys. Lett. B"},{"key":"ref_12","unstructured":"Hoffman, M.D., and Gelman, A. The No-U-Turn Sampler: Adaptively Setting Path Lengths in Hamiltonian Monte Carlo. arXiv, 2011."},{"key":"ref_13","unstructured":"Bagaev, D., and de Vries, B. Reactive Message Passing for Scalable Bayesian Inference. arXiv, 2021."},{"key":"ref_14","unstructured":"\u0218en\u00f6z, \u0130. (2022). Message Passing Algorithms for Hierarchical Dynamical Models. [Ph.D. Thesis, Eindhoven University of Technology]. ISBN 9789038655321."},{"key":"ref_15","doi-asserted-by":"crossref","first-page":"1295","DOI":"10.1109\/JPROC.2007.896497","article-title":"The Factor Graph Approach to Model-Based Signal Processing","volume":"95","author":"Loeliger","year":"2007","journal-title":"Proc. IEEE"},{"key":"ref_16","doi-asserted-by":"crossref","first-page":"79","DOI":"10.1214\/aoms\/1177729694","article-title":"On Information and Sufficiency","volume":"22","author":"Kullback","year":"1951","journal-title":"Ann. Math. Stat."},{"key":"ref_17","doi-asserted-by":"crossref","first-page":"859","DOI":"10.1080\/01621459.2017.1285773","article-title":"Variational Inference: A Review for Statisticians","volume":"112","author":"Blei","year":"2017","journal-title":"J. Am. Stat. Assoc."},{"key":"ref_18","doi-asserted-by":"crossref","first-page":"153","DOI":"10.1613\/jair.1933","article-title":"Convexity Arguments for Efficient Minimization of the Bethe and Kikuchi Free Energies","volume":"26","author":"Heskes","year":"2006","journal-title":"J. Artif. Intell. Res."},{"key":"ref_19","doi-asserted-by":"crossref","first-page":"065102","DOI":"10.1103\/PhysRevE.73.065102","article-title":"Loop calculus in statistical physics and information science","volume":"73","author":"Chertkov","year":"2006","journal-title":"Phys. Rev. E"},{"key":"ref_20","unstructured":"Pearl, J. (1982, January 18\u201320). Reverend Bayes on inference engines: A distributed hierarchical approach. Proceedings of the AAAI National Conference on AI, Pittsburgh, PA, USA."},{"key":"ref_21","doi-asserted-by":"crossref","first-page":"2282","DOI":"10.1109\/TIT.2005.850085","article-title":"Constructing free-energy approximations and generalized belief propagation algorithms","volume":"51","author":"Yedidia","year":"2005","journal-title":"IEEE Trans. Inf. Theory"},{"key":"ref_22","doi-asserted-by":"crossref","first-page":"325","DOI":"10.1023\/A:1008929526011","article-title":"WinBUGS-A Bayesian modelling framework: Concepts, structure, and extensibility","volume":"10","author":"Lunn","year":"2000","journal-title":"Stat. Comput."},{"key":"ref_23","doi-asserted-by":"crossref","first-page":"1","DOI":"10.18637\/jss.v076.i01","article-title":"Stan: A Probabilistic Programming Language","volume":"76","author":"Carpenter","year":"2017","journal-title":"J. Stat. Softw."},{"key":"ref_24","unstructured":"Goodman, N., Mansinghka, V., Roy, D.M., Bonawitz, K., and Tenenbaum, J.B. Church: A language for generative models. arXiv, 2014."},{"key":"ref_25","unstructured":"Pfeffer, A. (2001). IBAL: A Probabilistic Rational Programming Language. IJCAI, Citeseer."},{"key":"ref_26","unstructured":"Murray, L.M. Bayesian State-Space Modelling on High-Performance Hardware Using LibBi. arXiv, 2013."},{"key":"ref_27","unstructured":"Bingham, E., Chen, J.P., Jankowiak, M., Obermeyer, F., Pradhan, N., Karaletsos, T., Singh, R., Szerlip, P., Horsfall, P., and Goodman, N.D. Pyro: Deep Universal Probabilistic Programming. arXiv, 2018."},{"key":"ref_28","unstructured":"Mansinghka, V., Selsam, D., and Perov, Y. Venture: A higher-order probabilistic programming platform with programmable inference. arXiv, 2014."},{"key":"ref_29","unstructured":"Dillon, J.V., Langmore, I., Tran, D., Brevdo, E., Vasudevan, S., Moore, D., Patton, B., Alemi, A., Hoffman, M., and Saurous, R.A. TensorFlow Distributions. arXiv, 2017."},{"key":"ref_30","doi-asserted-by":"crossref","first-page":"40","DOI":"10.1016\/j.envsoft.2019.01.014","article-title":"Probabilistic programming: A review for environmental modellers","volume":"114","author":"Krapu","year":"2019","journal-title":"Environ. Model. Softw."},{"key":"ref_31","unstructured":"Bezanson, J., Edelman, A., Karpinski, S., and Shah, V.B. Julia: A Fresh Approach to Numerical Computing. arXiv, 2015."},{"key":"ref_32","unstructured":"Paszke, A., Gross, S., Massa, F., Lerer, A., Bradbury, J., Chanan, G., Killeen, T., Lin, Z., Gimelshein, N., and Antiga, L. PyTorch: An Imperative Style, High-Performance Deep Learning Library. arXiv, 2019."},{"key":"ref_33","doi-asserted-by":"crossref","unstructured":"\u015een\u00f6z, \u0130., and de Vries, B. (2018, January 17\u201320). Online Variational Message Passing in the Hierarchical Gaussian Filter. Proceedings of the 2018 IEEE 28th International Workshop on Machine Learning for Signal Processing (MLSP), Aalborg, Denmark. ISSN 1551-2541.","DOI":"10.1109\/MLSP.2018.8517019"},{"key":"ref_34","doi-asserted-by":"crossref","unstructured":"Mathys, C.D. (2012). Hierarchical Gaussian filtering: Construction and variational inversion of a generic Bayesian model of individual learning under uncertainty. [Ph.D. Thesis, ETH Zurich].","DOI":"10.3389\/fnhum.2011.00039"},{"key":"ref_35","doi-asserted-by":"crossref","unstructured":"Mathys, C.D., Lomakina, E.I., Daunizeau, J., Iglesias, S., Brodersen, K.H., Friston, K.J., and Stephan, K.E. (2014). Uncertainty in perception and the Hierarchical Gaussian Filter. Front. Hum. Neurosci., 8.","DOI":"10.3389\/fnhum.2014.00825"},{"key":"ref_36","unstructured":"Martin, R.C. (2003). Agile Software Development: Principles, Patterns, and Practices, Pearson Education."},{"key":"ref_37","doi-asserted-by":"crossref","first-page":"100299","DOI":"10.1016\/j.simpa.2022.100299","article-title":"ReactiveMP.jl: A Julia package for reactive variational Bayesian inference","volume":"12","author":"Bagaev","year":"2022","journal-title":"Softw. Impacts"},{"key":"ref_38","doi-asserted-by":"crossref","unstructured":"Dauwels, J. (2007, January 24\u201329). On Variational Message Passing on Factor Graphs. Proceedings of the IEEE International Symposium on Information Theory, Nice, France.","DOI":"10.1109\/ISIT.2007.4557602"},{"key":"ref_39","first-page":"661","article-title":"Variational Message Passing","volume":"6","author":"Winn","year":"2005","journal-title":"J. Mach. Learn. Res."},{"key":"ref_40","doi-asserted-by":"crossref","first-page":"712","DOI":"10.1016\/j.tins.2004.10.007","article-title":"The Bayesian brain: The role of uncertainty in neural coding and computation","volume":"27","author":"Knill","year":"2004","journal-title":"Trends Neurosci."},{"key":"ref_41","doi-asserted-by":"crossref","first-page":"127","DOI":"10.1038\/nrn2787","article-title":"The free-energy principle: A unified brain theory?","volume":"11","author":"Friston","year":"2010","journal-title":"Nat. Rev. Neurosci."},{"key":"ref_42","doi-asserted-by":"crossref","first-page":"20170792","DOI":"10.1098\/rsif.2017.0792","article-title":"The Markov blankets of life: Autonomy, active inference and the free energy principle","volume":"15","author":"Kirchhoff","year":"2018","journal-title":"J. R. Soc. Interface"},{"key":"ref_43","doi-asserted-by":"crossref","first-page":"227","DOI":"10.1016\/j.biosystems.2008.10.008","article-title":"Natural hierarchy emerges from energy dispersal","volume":"95","author":"Annila","year":"2009","journal-title":"Biosystems"},{"key":"ref_44","doi-asserted-by":"crossref","unstructured":"Dritsas, I. (2011). Stochastic Optimization: Seeing the Optimal for the Uncertain, BoD\u2014Books on Demand.","DOI":"10.5772\/623"},{"key":"ref_45","doi-asserted-by":"crossref","first-page":"363","DOI":"10.1007\/BF00336961","article-title":"The structure of images","volume":"50","author":"Koenderink","year":"1984","journal-title":"Biol. Cybern."},{"key":"ref_46","unstructured":"Kingma, D.P., and Welling, M. Auto-Encoding Variational Bayes. arXiv, 2022."}],"container-title":["Entropy"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1099-4300\/26\/11\/890\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T16:17:56Z","timestamp":1760113076000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1099-4300\/26\/11\/890"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,10,22]]},"references-count":46,"journal-issue":{"issue":"11","published-online":{"date-parts":[[2024,11]]}},"alternative-id":["e26110890"],"URL":"https:\/\/doi.org\/10.3390\/e26110890","relation":{},"ISSN":["1099-4300"],"issn-type":[{"type":"electronic","value":"1099-4300"}],"subject":[],"published":{"date-parts":[[2024,10,22]]}}}