Technical Guide#
This document gives a structural overview of the pm package. The abstract base class ProbabilisticModel defines an interface for probabilistic models that support all tractable query types.
The class inheritance diagram for parametric distributions is shown below.
classDiagram ContinuousDistribution <|-- ContinuousDistributionWithFiniteSupport ContinuousDistribution <|-- DiracDeltaDistribution ContinuousDistribution <|-- GaussianDistribution ContinuousDistribution <|-- IntegerDistribution ContinuousDistributionWithFiniteSupport <|-- TruncatedGaussianDistribution ContinuousDistributionWithFiniteSupport <|-- UniformDistribution DiscreteDistribution <|-- IntegerDistribution DiscreteDistribution <|-- SymbolicDistribution DrawIOInterface <|-- UnivariateDistribution GaussianDistribution <|-- TruncatedGaussianDistribution ProbabilisticModel <|-- MultinomialDistribution ProbabilisticModel <|-- UnivariateDistribution UnivariateDistribution <|-- ContinuousDistribution UnivariateDistribution <|-- DiscreteDistributionFig. 1 Inheritance Diagram for parametric distributions.#
For bayesian networks, the next class diagram is relevant.
classDiagram Node <|-- ConditionalProbabilisticCircuit Node <|-- ConditionalProbabilityTable Node <|-- RootFig. 2 Inheritance Diagram for baysian networks.#
For networkx based probabilistic circuits the next class diagram is relevant.
classDiagram DrawIOInterface <|-- Unit InnerUnit <|-- ProductUnit InnerUnit <|-- SumUnit LeafUnit <|-- UnivariateLeaf ProbabilisticCircuit <|-- ShallowProbabilisticCircuit ProbabilisticModel <|-- ProbabilisticCircuit Unit <|-- InnerUnit Unit <|-- LeafUnit UnivariateLeaf <|-- UnivariateContinuousLeaf UnivariateLeaf <|-- UnivariateDiscreteLeafFig. 3 Inheritance Diagram for probabilistic circuits implemented with rustworkx.#
Finally, for jax based faster circuits with limited inference, this class diagram is relevant.
classDiagram Conditioner <|-- LinearConditioner ContinuousLayer <|-- ContinuousLayerWithFiniteSupport ContinuousLayer <|-- DiracDeltaLayer ContinuousLayer <|-- GaussianLayer ContinuousLayerWithFiniteSupport <|-- UniformLayer InnerLayer <|-- ProductLayer InnerLayer <|-- SumLayer InputLayer <|-- ContinuousLayer InputLayer <|-- DiscreteLayer Layer <|-- InnerLayer Layer <|-- InputLayer SumLayer <|-- DenseSumLayer SumLayer <|-- SparseSumLayerFig. 4 Inheritance Diagram for probabilistic circuits implemented with jax.#