Table of Contents
Fetching ...

PlasmoData.jl -- A Julia Framework for Modeling and Analyzing Complex Data as Graphs

David L Cole, Victor M Zavala

TL;DR

PlasmoData.jl introduces a DataGraph abstraction to model arbitrary data as graphs, enabling topology- and graph-theoretic analyses across domains. The paper defines $\mathcal{DG}$, presents a Julia implementation, and demonstrates representations for matrices, tensors, and symmetric matrices; it then shows data manipulation and analysis operations including filtration, aggregation, and Euler Characteristic ($EC$) curves, with case studies in image analysis, time-series, and connectivity. The results show that graph-based representations yield interpretable topological descriptors and enable GNN-based classification and scalable processing. The work highlights the framework's flexibility, native Julia performance, and potential for integrating with existing ML and topological tools.

Abstract

Datasets encountered in scientific and engineering applications appear in complex formats (e.g., images, multivariate time series, molecules, video, text strings, networks). Graph theory provides a unifying framework to model such datasets and enables the use of powerful tools that can help analyze, visualize, and extract value from data. In this work, we present PlasmoData$.$jl, an open-source, Julia framework that uses concepts of graph theory to facilitate the modeling and analysis of complex datasets. The core of our framework is a general data modeling abstraction, which we call a DataGraph. We show how the abstraction and software implementation can be used to represent diverse data objects as graphs and to enable the use of tools from topology, graph theory, and machine learning (e.g., graph neural networks) to conduct a variety of tasks. We illustrate the versatility of the framework by using real datasets: i) an image classification problem using topological data analysis to extract features from the graph model to train machine learning models; ii) a disease outbreak problem where we model multivariate time series as graphs to detect abnormal events; and iii) a technology pathway analysis problem where we highlight how we can use graphs to navigate connectivity. Our discussion also highlights how PlasmoData$.$jl leverages native Julia capabilities to enable compact syntax, scalable computations, and interfaces with diverse packages.

PlasmoData.jl -- A Julia Framework for Modeling and Analyzing Complex Data as Graphs

TL;DR

PlasmoData.jl introduces a DataGraph abstraction to model arbitrary data as graphs, enabling topology- and graph-theoretic analyses across domains. The paper defines , presents a Julia implementation, and demonstrates representations for matrices, tensors, and symmetric matrices; it then shows data manipulation and analysis operations including filtration, aggregation, and Euler Characteristic () curves, with case studies in image analysis, time-series, and connectivity. The results show that graph-based representations yield interpretable topological descriptors and enable GNN-based classification and scalable processing. The work highlights the framework's flexibility, native Julia performance, and potential for integrating with existing ML and topological tools.

Abstract

Datasets encountered in scientific and engineering applications appear in complex formats (e.g., images, multivariate time series, molecules, video, text strings, networks). Graph theory provides a unifying framework to model such datasets and enables the use of powerful tools that can help analyze, visualize, and extract value from data. In this work, we present PlasmoDatajl, an open-source, Julia framework that uses concepts of graph theory to facilitate the modeling and analysis of complex datasets. The core of our framework is a general data modeling abstraction, which we call a DataGraph. We show how the abstraction and software implementation can be used to represent diverse data objects as graphs and to enable the use of tools from topology, graph theory, and machine learning (e.g., graph neural networks) to conduct a variety of tasks. We illustrate the versatility of the framework by using real datasets: i) an image classification problem using topological data analysis to extract features from the graph model to train machine learning models; ii) a disease outbreak problem where we model multivariate time series as graphs to detect abnormal events; and iii) a technology pathway analysis problem where we highlight how we can use graphs to navigate connectivity. Our discussion also highlights how PlasmoDatajl leverages native Julia capabilities to enable compact syntax, scalable computations, and interfaces with diverse packages.
Paper Structure (26 sections, 25 equations, 18 figures, 2 tables)

This paper contains 26 sections, 25 equations, 18 figures, 2 tables.

Figures (18)

  • Figure 1: Overview of the PlasmoData.jl modeling framework. Diverse data objects can be modeled under the DataGraph abstraction; this provides access to a diverse analysis tools and techniques for analyzing the data
  • Figure 2: Visualization of the DataGraph object. The PlasmoData.DataGraph (left) contains fundamental attributes ( g, nodes, edges, node_map, edge_map, node_data, edge_data, graph_data) which correspond to attributes of the mathematical DataGraph object (right) containing nodes ($\mathcal{N}$), edges ($\mathcal{E}$), directionality ($A$), node data ($\boldsymbol{d}^\mathcal{N}$), edge data ($\boldsymbol{d}^\mathcal{E}$), graph data ($\boldsymbol{d}^\mathcal{G}$), and node, edge, and graph attributes ($\mathcal{A}_\mathcal{N}$, $\mathcal{A}_\mathcal{E}$, and $\mathcal{A}_\mathcal{G}$, respectively). Each node and edge can embed data of a variety of forms, such as scalar values, vectors, or other graphs
  • Figure 3: Visualization of the PlasmoData.DataGraph associated with Code Snippet \ref{['code:overview']}
  • Figure 4: Visualization of graph representations of a matrix. The top graph corresponds to the matrix_graph_no_diagsPlasmoData.DataGraph object from Code Snippet \ref{['code:matrix_to_graph']}, and the lower graph corresponds to the matrix_graph_diagsPlasmoData.DataGraph object from Code Snippet \ref{['code:matrix_to_graph']} and is the output of the code snippet. Matrix entries are represented by nodes with the matrix entry values stored as data on each node
  • Figure 5: Visualization of graph representations of a tensor. The upper graph corresponds to the tensor_graph_2dPlasmoData.DataGraph object from Code Snippet \ref{['code:tensor_to_graph']}, and the lower graph corresponds to the tensor_graph_3dPlasmoData.DataGraph object from Code Snippet \ref{['code:tensor_to_graph']}
  • ...and 13 more figures

Theorems & Definitions (5)

  • Definition 3.1: Node-Removal Function $f^\mathcal{N}_{rem}$
  • Definition 3.2: Edge-Removal Function $f^\mathcal{E}_{rem}$
  • Definition 3.3: Node-Filtration Function $f_\mathcal{N}$
  • Definition 3.4: Edge-Filtration Function $f_\mathcal{E}$
  • Definition 3.5: Aggregation Function $f_{+}$