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:
- A
Datasetgroups process graphs and nested datasets. - A
LabProcessconnectsMaterialandDatainput/output nodes. - A
LabProtocoldescribes what the process executes. - A
PropertyValueannotates datasets, process parameters, input/output nodes, and protocol components. additionalType,additionalProperty, andDynamicObjcarry domain-specific extensions without changing the shared graph shape.
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
- Creating A Dataset builds a graph from F# objects.
- Decorations shows how to add domain specificity through typed annotations and
DynamicObjoverflow fields. - Reading And Writing YAML loads profile-shaped examples and writes inline or indexed YAML.
- Querying Process Graphs traverses upstream, downstream, and connected context.
- Fragment Selector Providers makes file fragments first-class in traversal.
- Tabular Views edits process graphs through ISA-like table projections.
- 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 |
|
Add domain-specific meaning |
|
Load ARC/profile-shaped YAML |
|
Validate stricter core-shaped YAML |
|
Ask provenance questions |
|
Work with file fragments |
|
Edit as rows and columns |
|
Understand surprising traversal behavior |
Node canonicalization, back-edges, and explicit process scopes |
ProcessCore