GraphPPL.jl Documentation
Welcome to the documentation of GraphPPL.jl
, a Probabilistic Programming Language for Julia for specifying probabilistic models in a form of a factor graph. GraphPPL
is a high-level backend-agnostic PPL that supports nested graphical models, allowing hierarchical modeling and model specification. GraphPPL
materializes your probabilistic models as a factor graph. Additionally, it support a plugin system, that allows specification of inference specific information for different methods, e.g. variational inference. GraphPPL
is designed to be a flexible and extensible PPL, and supports user-defined nodes and transformations.
It is important to note that GraphPPL.jl
is not an inference package and does not run inference in the specified models. For inference, you may need a GraphPPL.jl
compatible package, for example RxInfer.jl
.
Table of Contents
- Getting Started
- Nested model specification
- Developers guide
- Customizing the behaviour of the
@model
with a custom backend
Index
GraphPPL.VariableKindConstant
GraphPPL.VariableKindData
GraphPPL.VariableKindRandom
GraphPPL.VariableKindUnknown
GraphPPL.AnonymousVariable
GraphPPL.Atomic
GraphPPL.CombinedRange
GraphPPL.Composite
GraphPPL.Constraints
GraphPPL.Context
GraphPPL.DefaultBackend
GraphPPL.Deterministic
GraphPPL.EdgeLabel
GraphPPL.FactorAndVariableNodesPlugin
GraphPPL.FactorID
GraphPPL.FactorNodePlugin
GraphPPL.FactorNodeProperties
GraphPPL.FactorizationConstraint
GraphPPL.FactorizationConstraintEntry
GraphPPL.FunctionalIndex
GraphPPL.FunctionalRange
GraphPPL.GeneralSubModelConstraints
GraphPPL.IndexedVariable
GraphPPL.MarginalFormConstraint
GraphPPL.MeanField
GraphPPL.MessageFormConstraint
GraphPPL.MetaPlugin
GraphPPL.MissingCollection
GraphPPL.Model
GraphPPL.ModelGenerator
GraphPPL.NodeBehaviour
GraphPPL.NodeCreatedByPlugin
GraphPPL.NodeCreationOptions
GraphPPL.NodeData
GraphPPL.NodeDataExtraKey
GraphPPL.NodeIdPlugin
GraphPPL.NodeLabel
GraphPPL.NodeType
GraphPPL.PluginsCollection
GraphPPL.ProxyLabel
GraphPPL.ResizableArray
GraphPPL.SpecificSubModelConstraints
GraphPPL.SplittedRange
GraphPPL.StaticInterfaces
GraphPPL.Stochastic
GraphPPL.UnknownPluginType
GraphPPL.VarDict
GraphPPL.VariableNodePlugin
GraphPPL.VariableNodeProperties
GraphPPL.VariableRef
GraphPPL.VariationalConstraintsPlugin
GraphPPL.BetheFactorization
GraphPPL.add_atomic_factor_node!
GraphPPL.add_composite_factor_node!
GraphPPL.add_get_or_create_expression
GraphPPL.add_meta_construction
GraphPPL.add_plugin
GraphPPL.add_toplevel_model!
GraphPPL.add_variable_node!
GraphPPL.aliases
GraphPPL.apply_pipeline
GraphPPL.apply_pipeline_collection
GraphPPL.by_nodeid
GraphPPL.check_reserved_variable_names_model
GraphPPL.combine_args
GraphPPL.convert_anonymous_variables
GraphPPL.convert_deterministic_statement
GraphPPL.convert_local_statement
GraphPPL.convert_meta_object
GraphPPL.convert_tilde_expression
GraphPPL.convert_to_anonymous
GraphPPL.convert_to_kwargs_expression
GraphPPL.copy_markov_blanket_to_child_context
GraphPPL.create_model
GraphPPL.datalabel
GraphPPL.default_backend
GraphPPL.default_parametrization
GraphPPL.factor_alias
GraphPPL.factor_nodes
GraphPPL.factorization_split
GraphPPL.generate_get_or_create
GraphPPL.generate_nodelabel
GraphPPL.get_boilerplate_functions
GraphPPL.get_created_by
GraphPPL.getcontext
GraphPPL.getextra
GraphPPL.getorcreate!
GraphPPL.hasextra
GraphPPL.indexed_last
GraphPPL.instantiate
GraphPPL.interface_aliases
GraphPPL.interfaces
GraphPPL.is_factor
GraphPPL.is_kwargs_expression
GraphPPL.is_variable
GraphPPL.keyword_expressions_to_named_tuple
GraphPPL.lift_index
GraphPPL.make_node!
GraphPPL.makevarref
GraphPPL.materialize_constraints!
GraphPPL.missing_interfaces
GraphPPL.model_macro_interior
GraphPPL.model_macro_interior_pipelines
GraphPPL.options_vector_to_named_tuple
GraphPPL.plugin_type
GraphPPL.postprocess_plugin
GraphPPL.preprocess_plugin
GraphPPL.proxy_args
GraphPPL.prune!
GraphPPL.save_expression_in_tilde
GraphPPL.setextra!
GraphPPL.variable_nodes
GraphPPL.with_plugins
GraphPPL.@model