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
type – the type of the node (will be specified in concrete children classes.
typ (
str
) –
- eval(contextual_bn)¶
Evaluation of a AST tree from inside a BN :type contextual_bn:
BayesNet
:param contextual_bn: the BN in which will be done the computations :rtype:Potential
:return: the resulting Potential
- fastToLatex(nameOccur)¶
Internal virtual function to create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- protectToLatex(nameOccur)¶
Create a protected LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- toLatex(nameOccur=None)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Optional
[Dict
[str
,int
]]) –
- property type: str¶
return: 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 :type contextual_bn:
BayesNet
:param contextual_bn: the BN in which will be done the computations :rtype:Potential
:return: the resulting Potential
- fastToLatex(nameOccur)¶
Internal virtual function to create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- property op1: pyAgrum.causal._doAST.ASTtree¶
return: the left operand
- Return type
- property op2: pyAgrum.causal._doAST.ASTtree¶
return: the right operand
- Return type
- protectToLatex(nameOccur)¶
Create a protected LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- toLatex(nameOccur=None)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Optional
[Dict
[str
,int
]]) –
- property type: str¶
return: 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 :type contextual_bn:
BayesNet
:param contextual_bn: the BN in which will be done the computations :rtype:Potential
:return: the resulting Potential
- fastToLatex(nameOccur)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- property op1: pyAgrum.causal._doAST.ASTtree¶
return: the left operand
- Return type
- property op2: pyAgrum.causal._doAST.ASTtree¶
return: the right operand
- Return type
- protectToLatex(nameOccur)¶
Create a protected LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- toLatex(nameOccur=None)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Optional
[Dict
[str
,int
]]) –
- property type: str¶
return: 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 :type contextual_bn:
BayesNet
:param contextual_bn: the BN in which will be done the computations :rtype:Potential
:return: the resulting Potential
- fastToLatex(nameOccur)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- property op1: pyAgrum.causal._doAST.ASTtree¶
return: the left operand
- Return type
- property op2: pyAgrum.causal._doAST.ASTtree¶
return: the right operand
- Return type
- protectToLatex(nameOccur)¶
Create a protected LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- toLatex(nameOccur=None)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Optional
[Dict
[str
,int
]]) –
- property type: str¶
return: 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 :type contextual_bn:
BayesNet
:param contextual_bn: the BN in which will be done the computations :rtype:Potential
:return: the resulting Potential
- fastToLatex(nameOccur)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- property op1: pyAgrum.causal._doAST.ASTtree¶
return: the left operand
- Return type
- property op2: pyAgrum.causal._doAST.ASTtree¶
return: the right operand
- Return type
- protectToLatex(nameOccur)¶
Create a protected LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- toLatex(nameOccur=None)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Optional
[Dict
[str
,int
]]) –
- property type: str¶
return: 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 :type contextual_bn:
BayesNet
:param contextual_bn: the BN in which will be done the computations :rtype:Potential
:return: the resulting Potential
- fastToLatex(nameOccur)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- property op1: pyAgrum.causal._doAST.ASTtree¶
return: the left operand
- Return type
- property op2: pyAgrum.causal._doAST.ASTtree¶
return: the right operand
- Return type
- protectToLatex(nameOccur)¶
Create a protected LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- toLatex(nameOccur=None)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Optional
[Dict
[str
,int
]]) –
- property type: str¶
return: 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 (
List
[str
]) – name of the variableterm (
ASTtree
) – the tree to be evaluated
- eval(contextual_bn)¶
Evaluation of the sum
- fastToLatex(nameOccur)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- protectToLatex(nameOccur)¶
Create a protected LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- property term: pyAgrum.causal._doAST.ASTtree¶
return: the ASTtree of the expression inside the sum
- Return type
- toLatex(nameOccur=None)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Optional
[Dict
[str
,int
]]) –
- property type: str¶
return: 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 :type contextual_bn:
BayesNet
:param contextual_bn: the BN in which will be done the computations :rtype:Potential
:return: the resulting Potential
- fastToLatex(nameOccur)¶
Create a LaTeX representation of a ASTtree :rtype:
str
:return: the LaTeX string- Parameters
nameOccur (
Dict
[str
,int
]) –
- protectToLatex(nameOccur)¶
Create a protected LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- toLatex(nameOccur=None)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Optional
[Dict
[str
,int
]]) –
- property type: str¶
return: the type of the node
- Return type
str
- property varNames: Set[str]¶
return: 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 (
BayesNet
) – thepyAgrum:pyAgrum.BayesNet
varset (
Set
[str
]) – a set of variable names (in the BN)knw (
Set
[str
]) – a set of variable names (in the BN)
- property bn: pyAgrum.pyAgrum.BayesNet¶
return: bn in \(P_{bn}(vars|knw)\)
- Return type
- eval(contextual_bn)¶
Evaluation of a AST tree from inside a BN :type contextual_bn:
BayesNet
:param contextual_bn: the BN in which will be done the computations :rtype:Potential
:return: the resulting Potential
- fastToLatex(nameOccur)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- property knw: Set[str]¶
return: knw in \(P_{bn}(vars|knw)\)
- Return type
Set
[str
]
- protectToLatex(nameOccur)¶
Create a protected LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Dict
[str
,int
]) –
- toLatex(nameOccur=None)¶
Create a LaTeX representation of a ASTtree
- Return type
str
- Returns
the LaTeX string
- Parameters
nameOccur (
Optional
[Dict
[str
,int
]]) –
- property type: str¶
return: the type of the node
- Return type
str
- property vars: Set[str]¶
return: vars in \(P_{bn}(vars|knw)\)
- Return type
Set
[str
]