Abstract Syntax Tree for Do-Calculus
The pyCausal package compute every causal query into an Abstract Syntax Tree (CausalFormula) that represents the exact computations to be done in order to answer to the probabilistic causal query.
The different types of node in an CausalFormula are presented below and are organized as a hierarchy of classes from pyAgrum.causal.ASTtree
.

Internal node structure
- class pyAgrum.causal.ASTtree(typ, verbose=False)
Represents a generic node for the CausalFormula. The type of the node will be registered in a string.
- Parameters
typ (str) – the type of the node (will be specified in concrete children classes.
verbose (bool) – if True, add some messages
- eval(contextual_bn)
Evaluation of a AST tree from inside a BN
- Parameters
contextual_bn (pyAgrum.BayesNet) – the observational Bayesian network in which will be done the computations
- Returns
the resulting Potential
- Return type
- fastToLatex(nameOccur)
Internal virtual function to create a LaTeX representation of the ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- protectToLatex(nameOccur)
Create a protected LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
a protected version of LaTeX representation of the tree
- Return type
str
- toLatex(nameOccur=None)
Create a LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int] default=None) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property type: str
- Returns
the type of the node
- Return type
str
- class pyAgrum.causal.ASTBinaryOp(typ, op1, op2)
Represents a generic binary node for the CausalFormula. The op1 and op2 are the two operands of the class.
- Parameters
- eval(contextual_bn)
Evaluation of a AST tree from inside a BN
- Parameters
contextual_bn (pyAgrum.BayesNet) – the observational Bayesian network in which will be done the computations
- Returns
the resulting Potential
- Return type
- fastToLatex(nameOccur)
Internal virtual function to create a LaTeX representation of the ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- protectToLatex(nameOccur)
Create a protected LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
a protected version of LaTeX representation of the tree
- Return type
str
- toLatex(nameOccur=None)
Create a LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int] default=None) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property type: str
- Returns
the type of the node
- Return type
str
Basic Binary Operations
- class pyAgrum.causal.ASTplus(op1, op2)
Represents the sum of 2
causal.ASTtree
- eval(contextual_bn)
Evaluation of a AST tree from inside a BN
- Parameters
contextual_bn (pyAgrum.BayesNet) – the observational Bayesian network in which will be done the computations
- Returns
the resulting Potential
- Return type
- fastToLatex(nameOccur)
Internal virtual function to create a LaTeX representation of the ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- protectToLatex(nameOccur)
Create a protected LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
a protected version of LaTeX representation of the tree
- Return type
str
- toLatex(nameOccur=None)
Create a LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int] default=None) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property type: str
- Returns
the type of the node
- Return type
str
- class pyAgrum.causal.ASTminus(op1, op2)
Represents the substraction of 2
causal.ASTtree
- eval(contextual_bn)
Evaluation of a AST tree from inside a BN
- Parameters
contextual_bn (pyAgrum.BayesNet) – the observational Bayesian network in which will be done the computations
- Returns
the resulting Potential
- Return type
- fastToLatex(nameOccur)
Internal virtual function to create a LaTeX representation of the ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- protectToLatex(nameOccur)
Create a protected LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
a protected version of LaTeX representation of the tree
- Return type
str
- toLatex(nameOccur=None)
Create a LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int] default=None) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property type: str
- Returns
the type of the node
- Return type
str
- class pyAgrum.causal.ASTdiv(op1, op2)
Represents the division of 2
causal.ASTtree
- eval(contextual_bn)
Evaluation of a AST tree from inside a BN
- Parameters
contextual_bn (pyAgrum.BayesNet) – the observational Bayesian network in which will be done the computations
- Returns
the resulting Potential
- Return type
- fastToLatex(nameOccur)
Internal virtual function to create a LaTeX representation of the ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- protectToLatex(nameOccur)
Create a protected LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
a protected version of LaTeX representation of the tree
- Return type
str
- toLatex(nameOccur=None)
Create a LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int] default=None) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property type: str
- Returns
the type of the node
- Return type
str
- class pyAgrum.causal.ASTmult(op1, op2)
Represents the multiplication of 2
causal.ASTtree
- eval(contextual_bn)
Evaluation of a AST tree from inside a BN
- Parameters
contextual_bn (pyAgrum.BayesNet) – the observational Bayesian network in which will be done the computations
- Returns
the resulting Potential
- Return type
- fastToLatex(nameOccur)
Internal virtual function to create a LaTeX representation of the ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- protectToLatex(nameOccur)
Create a protected LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
a protected version of LaTeX representation of the tree
- Return type
str
- toLatex(nameOccur=None)
Create a LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int] default=None) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property type: str
- Returns
the type of the node
- Return type
str
Complex operations
- class pyAgrum.causal.ASTsum(var, term)
Represents a sum over a variable of a
causal.ASTtree
.- Parameters
var (str) – name of the variable on which to sum
term (ASTtree) – the tree to be evaluated
- eval(contextual_bn)
Evaluation of a AST tree from inside a BN
- Parameters
contextual_bn (pyAgrum.BayesNet) – the observational Bayesian network in which will be done the computations
- Returns
the resulting Potential
- Return type
- fastToLatex(nameOccur)
Internal virtual function to create a LaTeX representation of the ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- protectToLatex(nameOccur)
Create a protected LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
a protected version of LaTeX representation of the tree
- Return type
str
- toLatex(nameOccur=None)
Create a LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int] default=None) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property type: str
- Returns
the type of the node
- Return type
str
- class pyAgrum.causal.ASTjointProba(varNames)
Represent a joint probability in the base observational part of the
causal.CausalModel
- Parameters
varNames (Set[str]) – a set of variable names
- eval(contextual_bn)
Evaluation of a AST tree from inside a BN
- Parameters
contextual_bn (pyAgrum.BayesNet) – the observational Bayesian network in which will be done the computations
- Returns
the resulting Potential
- Return type
- fastToLatex(nameOccur)
Internal virtual function to create a LaTeX representation of the ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- protectToLatex(nameOccur)
Create a protected LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
a protected version of LaTeX representation of the tree
- Return type
str
- toLatex(nameOccur=None)
Create a LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int] default=None) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property type: str
- Returns
the type of the node
- Return type
str
- property varNames: Set[str]
- Returns
the set of names of var
- Return type
Set[str]
- class pyAgrum.causal.ASTposteriorProba(bn, varset, knw)
Represent a conditional probability \(P_{bn}(vars|knw)\) that can be computed by an inference in a BN.
- Parameters
bn (pyAgrum.BayesNet) – the
pyAgrum:pyAgrum.BayesNet
varset (Set[str]) – a set of variable names (in the BN) conditioned in the posterior
knw (Set[str]) – a set of variable names (in the BN) conditioning in the posterior
- eval(contextual_bn)
Evaluation of a AST tree from inside a BN
- Parameters
contextual_bn (pyAgrum.BayesNet) – the observational Bayesian network in which will be done the computations
- Returns
the resulting Potential
- Return type
- fastToLatex(nameOccur)
Internal virtual function to create a LaTeX representation of the ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property knw: Set[str]
- Returns
(Conditioning) knw in \(P_{bn}(vars|knw)\)
- Return type
Set[str]
- protectToLatex(nameOccur)
Create a protected LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int]) – the number of occurrence for each variable
- Returns
a protected version of LaTeX representation of the tree
- Return type
str
- toLatex(nameOccur=None)
Create a LaTeX representation of a ASTtree
- Parameters
nameOccur (Dict[str,int] default=None) – the number of occurrence for each variable
- Returns
LaTeX representation of the tree
- Return type
str
- property type: str
- Returns
the type of the node
- Return type
str
- property vars: Set[str]
- Returns
(Conditioned) vars in \(P_{bn}(vars|knw)\)
- Return type
Set[str]