Technical Guide

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
  GaussianDistribution <|-- TruncatedGaussianDistribution
  ProbabilisticModel <|-- MultinomialDistribution
  ProbabilisticModel <|-- UnivariateDistribution
  UnivariateDistribution <|-- ContinuousDistribution
  UnivariateDistribution <|-- DiscreteDistribution
    

Fig. 1 Inheritance Diagram for parametric distributions.#

For bayesian networks, the next class diagram is relevant.

        classDiagram
  Node <|-- ConditionalProbabilisticCircuit
  Node <|-- ConditionalProbabilityTable
  Node <|-- Root
    

Fig. 2 Inheritance Diagram for baysian networks.#

For networkx based probabilistic circuits the next class diagram is relevant.

        classDiagram
  InnerUnit <|-- ProductUnit
  InnerUnit <|-- SumUnit
  LeafUnit <|-- UnivariateLeaf
  ProbabilisticCircuit <|-- ShallowProbabilisticCircuit
  ProbabilisticModel <|-- ProbabilisticCircuit
  Unit <|-- InnerUnit
  Unit <|-- LeafUnit
  UnivariateLeaf <|-- UnivariateContinuousLeaf
  UnivariateLeaf <|-- UnivariateDiscreteLeaf
    

Fig. 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 <|-- GaussianLayer
  ContinuousLayerWithFiniteSupport <|-- UniformLayer
  InputLayer <|-- ContinuousLayer
  InputLayer <|-- DiscreteLayer
  Layer <|-- InputLayer
    

Fig. 4 Inheritance Diagram for probabilistic circuits implemented with jax.#