Logo ProcessCore

ProcessCore User Guide

ProcessCore is the in-memory F# library for building, decorating, reading, querying, and editing ARC process graphs.

The core model is intentionally small:

The pages in this section are user-facing implementation guides.

For normative field definitions, use the core specification. These project pages focus on using the F# library.

For API reference, see the API docs.

Recommended Path

  1. Creating A Dataset builds a graph from F# objects.
  2. Decorations shows how to add domain specificity through typed annotations and DynamicObj overflow fields.
  3. Reading And Writing YAML loads profile-shaped examples and writes inline or indexed YAML.
  4. Querying Process Graphs traverses upstream, downstream, and connected context.
  5. Fragment Selector Providers makes file fragments first-class in traversal.
  6. Tabular Views edits process graphs through ISA-like table projections.
  7. Graph Identity, Back-Edges, And Scope explains the invariants behind shared nodes and scoped traversal.

What To Use When

Task

Start With

Build a process graph in code

Dataset, LabProcess, Material, Data

Add domain-specific meaning

AdditionalType, AddAdditionalProperty, AddParameterValue, DynamicObj.SetProperty

Load ARC/profile-shaped YAML

ProcessCore.Yaml.Dataset.fromYamlString false

Validate stricter core-shaped YAML

ProcessCore.Yaml.Dataset.fromYamlString true

Ask provenance questions

AllProcesses, UpstreamNodes, DownstreamPropertyValues, PathsThrough

Work with file fragments

Data.Selector, Data.SelectorFormat, RegisterFragmentSelectorProvider

Edit as rows and columns

dataset.Tables from ProcessCore.Table

Understand surprising traversal behavior

Node canonicalization, back-edges, and explicit process scopes

Type something to start searching.