graph LR
GraphNode["GraphNode"]
Edge["Edge"]
GraphClass["GraphClass"]
Dag["Dag"]
GeneralGraph["GeneralGraph"]
GraphClass -- "utilizes" --> GraphNode
GraphClass -- "utilizes" --> Edge
Dag -- "is a" --> GraphClass
Dag -- "utilizes" --> GraphNode
Dag -- "utilizes" --> Edge
GeneralGraph -- "is a" --> GraphClass
GeneralGraph -- "utilizes" --> GraphNode
GeneralGraph -- "utilizes" --> Edge
The Graph Representation Layer subsystem provides the foundational data structures and interfaces for defining, storing, and managing various types of causal graphs, including their nodes and edges.
Manages the identity (name) and attributes of a graph node. It serves as the atomic unit for representing entities within any graph structure.
Related Classes/Methods:
Defines the two endpoints of a connection and its directionality (e.g., directed, undirected, bi-directed). It represents the relationships between GraphNode instances.
Related Classes/Methods:
Serves as a foundational abstract base for various graph types, offering common functionalities such as identifying edge types, determining adjacency, detecting structural patterns (e.g., unshielded triples), finding conditioning sets, and converting to NetworkX graph formats. It establishes the common interface for all graph implementations.
Related Classes/Methods:
Manages the structure and properties unique to Directed Acyclic Graphs (DAGs). This includes operations like adding/removing nodes and edges while preserving acyclicity, computing node degrees, identifying ancestors and descendants, checking d-separation, and converting the DAG to a Partial Ancestral Graph (PAG).
Related Classes/Methods:
Provides functionalities for managing general graph structures, which can contain both directed and undirected edges, and cycles. This includes adding/removing nodes and edges, computing degrees, identifying ancestors and descendants, and checking d-separation. It offers a more flexible graph representation than Dag.
Related Classes/Methods: