Introduction
EnhancedBayesianNetworks.jl is a Julia package for building, reducing, and querying enhanced Bayesian networks (eBNs) [1]: Bayesian networks extended with the continuous and functional nodes of structural reliability analysis, and with imprecision — interval probabilities and probability boxes — carried consistently from the inputs through to the inference result.
Why enhanced Bayesian networks
A classical Bayesian network [2] is a directed acyclic graph of discrete random variables, each with a conditional probability table (CPT) given its parents. That is expressive for categorical reasoning, but engineering models rarely stop there: quantities are continuous, and the probabilities that matter — a component's failure probability, say — are not tabulated in advance but computed from a physical model.
An enhanced Bayesian network closes that gap by admitting three kinds of node side by side:
discrete nodes, whose CPT is known a priori;
continuous nodes, holding a probability distribution;
functional nodes, whose conditional table is not given but derived from the parents through one or more UncertaintyQuantification.jl models, evaluated as structural reliability problems [3].
See the Nodes chapter for the full taxonomy.
The system probability distribution
Notation
Throughout the manual,
A Bayesian network encodes a joint distribution that factorizes over the graph. By the local Markov property each variable is conditionally independent of its non-descendants given its parents, so the joint distribution of
where
An enhanced Bayesian network keeps this factorized structure but admits both a set of discrete nodes
where the
Precision and imprecision
Every quantity in the model may be precise or imprecise. A discrete CPT entry can be a single probability or an Interval; a continuous node can hold an ordinary distribution or a probability box [4]. Imprecision expresses epistemic uncertainty — what is not known well enough to pin down a single number [5] — and it decides the kind of network you end up with: any surviving imprecision turns a Bayesian network into a credal network [6], a whole convex family of Bayesian networks rather than a single one.
From model to answer
Because a functional or continuous node cannot be queried directly, an eBN is first reduced to a purely discrete network: its continuous nodes are discretized and its functional nodes are evaluated as reliability problems, yielding a BayesianNetwork when everything stays precise or a CredalNetwork when imprecision survives. This reduction is the core operation of the library — see Reduction & Reliability Analysis.
The reduced network is then ready for inference: exact posteriors by variable elimination for a Bayesian network, or lower/upper posterior bounds for a credal one (see Inference). The package also supports learning CPTs from data (Parameter Learning) and drawing the network structure (Plotting).
How this manual is organized
Getting Started — install the package and run a first model.
Nodes — the building blocks: discrete, continuous, and functional nodes.
Networks — Bayesian, credal, and enhanced Bayesian networks.
Reduction & Reliability Analysis — reducing an eBN, and imprecise reliability.
Inference — variable elimination and credal inference.
Parameter Learning — learning CPTs from data.
Plotting — visualizing a network.
The package builds directly on UncertaintyQuantification.jl [3], whose Model, Parameter, RandomVariable, Interval, and ProbabilityBox types (and its simulation methods) are re-exported and used throughout.