The SoCK Ontology (Synthesis of Causal Knowledge)
type: Ontology
contributor: Fajar J. Ekaputra
contributor: Marta Sabou
created: 2025-12-01T00:00:00Z
creator: Katrin Ehrenmüller
creator: Lucas Kook
license: http://w3id.org/explainability/1.0
license: https://creativecommons.org/licenses/by/4.0
modified: 2026-03-30T00:00:00Z
title: This ontology is created to support the integration and synthesis of causal knowledge from various sources, including causal discovery algorithms, expert knowledge, or other sources of causal discovery. It covers three main focus areas: "Causal Graph and Metrics" focuses on the representation of a specific causal graph, its edges, and comparison metrics, where discrepancies between two graphs can be represented. "Causal Discovery Method" focuses on the methods applied to derived a causal graph. This could be a causal discovery algorithm, including the hyper parameter settings that were applied in a specific run to create a specific causal graph. "Data and Context" focuses on the data that was investigated to derive a causal graph. This includes the variables of a dataset, which were investigated, as well as assumptions that are posed on a dataset by an algorithm/method.
preferred namespace prefix: sock

appliesCIT
type: ObjectProperty
domain: CausalDiscoveryAlgorithm
range: ConditionalIndependenceTest
comment: A causal discovery algorithm applies a set of conditional independence tests.

belongsToCausalGraph
type: ObjectProperty
domain: CausalEdge
range: CausalGraph
comment: relation from causal edge to the causal graph that is defining this specific edge.

compares
type: ObjectProperty
domain: GraphComparisonMetric
range: CausalGraph
comment: relation from a graph comparison metric to the two graph entities that are compared by the causal graph.

conditionedOn
type: ObjectProperty
domain: Separation
range: CausalNode
comment: A relation that defines the set of variables to condition on, to define a separation statement. For (A _||_B |C), the "conditionedOn" variable would be C.

connectsNode
type: ObjectProperty
domain: CausalEdge
range: CausalNode
comment: a connection relation from a causal edge to the corresponding causal nodes

contains
type: ObjectProperty
inverse of: isPartOf
domain: Datasource
range: Variable
comment: A relation between a datasource and its variables, to define which variables are contained in a datasource.

containsCausalNode
type: ObjectProperty
domain: CausalGraph
range: CausalNode
comment: A causal graph contains a set of causal nodes. Even if there is no edge defined that is connected to this causal node, it can still be part of the causal graph, as it was considered in the causal discovery method.

fulfillsAssumption
type: ObjectProperty
domain: Datasource
range: Assumption
comment: A datasource can fulfill a certain assumption that is posed by a causal discovery method.

hasCause
type: ObjectProperty
sub property of: connectsNode
domain: CausalEdge
range: CausalNode
property disjoint with: hasEffect
comment: A connection from a causal edge to a causal node, which signified a "cause" relation. For an Edge A -> B, a causal edge would be connected to node A via a "hasCause" relation, and it would be connected to node B via a "hasEffect" relation.

hasCauseOrEffect
type: ObjectProperty
sub property of: connectsNode
domain: CausalEdge
range: CausalNode
comment: A connection from a causal edge to a causal node, which signified an ambiguous causal relation. This means, that for all Markov-equivalent causal graph, there are some causal relations A->B, and some causal relations A <- B. For an Edge A°-°B, a causal edge would be connected to both nodes (A, B) via a "hasCauseOrEffect" relation.

hasEffect
type: ObjectProperty
sub property of: connectsNode
domain: CausalEdge
range: CausalNode
comment: A connection from a causal edge to a causal node, which signified an "effect" relation. For an Edge A <-> B, a causal edge would be connected to both nodes A and B via a "hasEffect" relation.

hasIndependentVariable
type: ObjectProperty
domain: Separation
range: CausalNode
comment: A relation that defines the set of independent variables define in a separation statement. For (A _||_B |C), the "hasIndependentVariable" variable would be A.

impliesConditionalIndependence
type: ObjectProperty
domain: ImpliedSeparation
range: ConditionalIndependenceTest
comment: Relation between an implied separation, defined by a causal graph, and a conditional independence test, which is performed on data by a causal discovery algorithm. Ideally, these two should imply the same separations.

impliesSeparation
type: ObjectProperty
domain: CausalGraph
range: ImpliedSeparation
comment: A causal graph implies a set of implied separations. which represent a separation of two variables, when conditioned on a set of variables.

independentOf
type: ObjectProperty
domain: Separation
range: CausalNode
comment: A relation that defines the set of variables the independent variable is independent of, as defined in a separation statement. For (A _||_B |C), the "independentOf" variable would be B.

isInverseMarginalizedFrom
type: ObjectProperty
inverse of: isMarginalizedFrom
domain: CausalGraph
range: CausalGraph
comment: A marginalized graph can be reverted to a bigger graph, based on the encoded knowledge. However, this does not always revert the causal graph to its original graph, as some information was lost via the initial marginalization.

isMarginalizedFrom
type: ObjectProperty
type: TransitiveProperty
domain: CausalGraph
range: CausalGraph
comment: A causal graph can be marginalized from a bigger causal graph, by excluding some causal nodes in the consideration of causal edges. This is not necessarily a subgraph of the original causal graph.

isPartOf
type: ObjectProperty
sub property of: topObjectProperty
domain: Variable
range: Datasource
comment: A variable is part of a dataset.

outputsCausalGraph
type: ObjectProperty
domain: CausalDiscoveryMethod
range: CausalGraph
comment: A relation to connect a causal discovery method to the causal graph is produces.

representsSeparation
type: ObjectProperty
domain: ImpliedSeparation
range: Separation
comment: An implied separation represents a separation of two variables, which are conditioned on a set of variables. The exact variables in a separation are defined by Separation, while ImpliedSeparation only refers to the Separation it implies.

summarizes
type: ObjectProperty
domain: GraphSummaryMetric
range: CausalGraph
comment: A relation between a graphSummaryMetric and its corresponding causal graph, which summarizes its global features.

testsImpliedSeparation
type: ObjectProperty
domain: ConditionalIndependenceTest
range: Separation
comment: A relation between a conditional independence test, and the implied separation that is tested by it.

testsSeparation
type: ObjectProperty
domain: ConditionalIndependenceTest
range: Separation
comment: A conditional indepdence test test a separation of two variables, when conditioned on a set of other variables. this setup is defined by the class :Separation.

usesDatasource
type: ObjectProperty
domain: CausalDiscoveryMethod
range: Datasource
comment: A relation between a causal discovery method and the data source the method investigates.

worksUnderAssumption
type: ObjectProperty
domain: Class
  union of: CausalDiscoveryMethod
  union of: ConditionalIndependenceTest
range: Assumption
comment: Each causal discovery method works under a set of assumptions. This is predefined by the specific method and how it operates, and cannot be adapted for each run of an algorithm.

alpha
type: DatatypeProperty
domain: Class
  union of: FCI
  union of: PC
range: float
comment: Level of Test

distanceValueAbsolute
type: DatatypeProperty
sub property of: topDataProperty
domain: GraphComparisonMetric
range: integer
property disjoint with: distanceValueRelative
comment: The absolute distance value between two graphs. This is the amount of differences in total.

distanceValueRelative
type: DatatypeProperty
sub property of: topDataProperty
domain: GraphComparisonMetric
range: float
comment: The relative distance value between two graphs. This is the amount of differences in total divided by the total amount of possible relations.

functionCall
type: DatatypeProperty
domain: CausalDiscoveryAlgorithm
range: string
comment: The function call of a specific package that implements a causal discovery algorithm, specifying all of its parameters.

hasDataType
type: DatatypeProperty
domain: Variable
range: string
comment: Defines the Datatype of a variable (boolean, continuous, nominal)

hasPValue
type: DatatypeProperty
domain: ConditionalIndependenceTest
range: float
comment: The p value of the conditional independence test. This is represents the significance of a tested separation.

implementationLanguage
type: DatatypeProperty
domain: CausalDiscoveryAlgorithm
range: string
comment: The programming language, in which the method was run.

lambda
type: DatatypeProperty
domain: AlgorithmForIID
range: float
comment: regularization strength

usesPackage
type: DatatypeProperty
domain: CausalDiscoveryAlgorithm
range: string
comment: The package or library, referring to a concrete implementation of the method, that was used to run a certain algorithm

Acyclic Directed Mixed Graph (ADMG)
type: Class
subclass of: DMG
comment: An ADMG is a more complex graph used when we suspect there are unmeasured (latent) variables. It contains two types of edges: directed arrows ($\to$) and bidirected arrows ($\leftrightarrow$).

AIModel
type: Class
subclass of: CausalDiscoveryMethod
disjoint with: Human
comment: A subclass of a causal discovery method, which uses some kind of AI model to produce a causal graph.

AlgorithmForIID
type: Class
subclass of: CausalDiscoveryAlgorithm
subclass of: Restriction
  all values from: IIDDatasource
  on property: usesDatasource
comment: A causal discovery algorithm that can work on IID (Independent and Identically Distributed) data.

Assumption
type: Class
comment: An assumption that is taken by a causal discovery method. This assumption must be fulfilled for a method to produce valid results.

CPDAG
type: Class
subclass of: CausalGraph
comment: Completed Partially Directed Acyclic Graph (CPDAG)

CausalDiscoveryAlgorithm
type: Class
subclass of: AIModel
disjoint with: LLM
comment: A causal discovery algorithm that uses some kind of statistical methods to derive a causal graph.

CausalDiscoveryMethod
type: Class
comment: A Method for causal discovery, which produces a causal graph, usually based on a datasource, but not necessarily.

CausalEdge
type: Class
subclass of: Restriction
  on class: CausalNode
  qualified cardinality: 2
  on property: connectsNode
comment: An edge between two causal nodes, which defines some kind of causal relation between the two nodes.

CausalGraph
type: Class
comment: A graph showing causal relations between a set of nodes, which was produced by some causal discovery algorithm.

CausalNode
type: Class
comment: A node in a causal graph.

CausalSufficiency
type: Class
subclass of: Assumption
comment: Causal Sufficiency states that all confounders of the observed variables have been measured and are included in the data.

ConditionalIndependenceTest
type: Class
comment: Conditional Independence refers to the situation where a variable (A) is independent of another set of variables (B) given (conditional on) a specific set of variables (C). This means that knowing one set of variables (B) provides no additional information about the variable in question (A) when the other set is already known (C).

Directed Acyclic Graph (DAG)
type: Class
subclass of: Acyclic Directed Mixed Graph (ADMG)
subclass of: Directed Graph (DG)
subclass of: EssentialGraph
comment: A DAG consists of nodes and directed edges (arrows) where no path exists that starts and ends at the same node.

Directed Graph (DG)
type: Class
subclass of: DMG
comment: A DG(directed graph) is a set of nodes connected by directed edges.

DMG
type: Class
subclass of: CausalGraph
comment: Directed Mixed Graph (DMG)

DSeparation
type: Class
subclass of: ImpliedSeparation
comment: An Implied Separation for IID data.

Datasource
type: Class
comment: A unique identifier for a dataset that is used for causal discovery.

EssentialGraph
type: Class
subclass of: CPDAG
comment: a single graph that represents an entire Markov equivalence class, using directed edges for relationships where the causality is logically certain and undirected edges for those where the direction remains statistically indistinguishable.

FCI
type: Class
subclass of: AlgorithmForIID
subclass of: Restriction
  some values from: PAG
  on property: outputsCausalGraph
subclass of: Restriction
  some values from: Faithfulness
  on property: worksUnderAssumption
comment: Fast Causal Inference (FCI)

Faithfulness
type: Class
subclass of: Assumption
comment: The faithfulness assumption in causal inference states that all statistical independencies observed in data truly reflect conditional independencies (d-separations) in the underlying causal graph, meaning no effects perfectly cancel out due to specific parameter settings.

GraphComparisonMetric
type: Class
subclass of: Restriction
  on class: CausalGraph
  qualified cardinality: 2
  on property: compares
comment: A metric to compare two causal graphs.

GraphSummaryMetric
type: Class
subclass of: Restriction
  on class: CausalGraph
  qualified cardinality: 1
  on property: summarizes
comment: A metric that analyses graph properties, summarizing their structure.

HammingDistance
type: Class
subclass of: GraphComparisonMetric
disjoint with: SeparationDistance
comment: Hamming distance for graphs measures structural difference, typically by comparing their binary adjacency matrices.

Human
type: Class
subclass of: CausalDiscoveryMethod
comment: A human (expert), whose expertise is used to produce a causal graph.

IIDDatasource
type: Class
subclass of: Datasource
disjoint with: TimeseriesDatasource
comment: An independent and identically distributed datasource.

ImpliedSeparation
type: Class
comment: An implied separation determines if two sets of variables are statistically independent based on the paths and arrowheads connecting them in a causal graph (which implies this separation).

LLM
type: Class
subclass of: AIModel
comment: An LLM, which was used to produce a causal graph.

LatentVariable
type: Class
subclass of: CausalNode
comment: A node in a causal graph, which contains unobserved variables.

Linearity
type: Class
subclass of: Assumption
comment: linearity assumption means the treatment's effect on the outcome is a constant, straight-line change.

MuSeparation
type: Class
subclass of: ImpliedSeparation
comment: An implied Separation for timeseries data.

NOTEARS
type: Class
subclass of: AlgorithmForIID
subclass of: Restriction
  some values from: Directed Acyclic Graph (DAG)
  on property: outputsCausalGraph
subclass of: Restriction
  some values from: CausalSufficiency
  on property: worksUnderAssumption
subclass of: Restriction
  some values from: Faithfulness
  on property: worksUnderAssumption
subclass of: Restriction
  some values from: Linearity
  on property: worksUnderAssumption
comment: NOTEARS (Non-combinatorial Optimization for Learning Interpretable Acyclic Graphs) is a causal discovery algorithm, which treats the causal discovery problem as a continuous optimization problem.

PAG
type: Class
subclass of: CausalGraph
comment: Partial Ancestral Graph (PAG)

PC
type: Class
subclass of: AlgorithmForIID
subclass of: Restriction
  some values from: CPDAG
  on property: outputsCausalGraph
subclass of: Restriction
  some values from: CausalSufficiency
  on property: worksUnderAssumption
subclass of: Restriction
  some values from: Faithfulness
  on property: worksUnderAssumption
comment: Peter-Clark (PC)

R2SORT
type: Class
subclass of: AlgorithmForIID
subclass of: Restriction
  some values from: Directed Acyclic Graph (DAG)
  on property: outputsCausalGraph
subclass of: Restriction
  some values from: CausalSufficiency
  on property: worksUnderAssumption
subclass of: Restriction
  some values from: Faithfulness
  on property: worksUnderAssumption
subclass of: Restriction
  some values from: Linearity
  on property: worksUnderAssumption
comment: A causal discovery algorithm to identify the topological ordering of variables in a Directed Acyclic Graph (DAG) by leveraging the statistical properties of the coefficient of determination (R2).

Separation
type: Class
subclass of: Restriction
  some values from: CausalNode
  on property: conditionedOn
subclass of: Restriction
  some values from: CausalNode
  on property: hasIndependentVariable
subclass of: Restriction
  some values from: CausalNode
  on property: independentOf
comment: A superclass, which encompasses Independence Separations, such as Conditional Independence and Implied Separations.

SeparationDistance
type: Class
subclass of: GraphComparisonMetric
comment: Separation distance measures how different two causal graphs are by focusing on their conditional independence (separation) properties.

TemporalConditionalIndependence
type: Class
subclass of: ConditionalIndependenceTest
comment: Conditional Indepdendence of Temporal Variables are slightly different to Conditional Independence of IID Variables, as this is not a symmetric relation anymore, given time. Thus, temporal conditional independence always requires a direction.

TimeseriesDatasource
type: Class
subclass of: Datasource
comment: A timeseries datasource, meaning that measurements are associated with timestamps. The present of a variable is dependent on its past observations.

Variable
type: Class
comment: A Variable, defined as part of a data set.

entity position x: 84.07475598992332
entity position y: 283.77211890929726
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 48.43081593143603
entity position y: 172.93312906269063
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 75.29316433092994
entity position y: 221.57756745151747
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 140.5968539164047
entity position y: 299.10683478854116
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 193.5453451690675
entity position y: 54.784602407831926
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 212.2299974409006
entity position y: 185.28573689667058
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 137.75180807367553
entity position y: 223.24682939876828
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 286.0661568740652
entity position y: 187.51323184255375
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 55.894874715998924
entity position y: 192.21191975303879
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 489.7195395268974
entity position y: 250.44649334453283
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 40.81401494785077
entity position y: 111.0501753883382
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 297.5262125331388
entity position y: 254.05948813266755
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.

entity position x: 1.842414933921568
entity position y: 178.9329457608321
comment: This is an entity positioning annotation generated by CoModIDE (https://comodide.com/). Removing this annotation will break rendering the CoModIDE schema diagram view.