Specification Guide
The normative specification lives in docs/spec. The repository organizes the ARC RDM model into three base profiles: Process Provenance, Semantic Designation, and Administrative. Decoration profiles, including Datamap, add domain-specific refinements. The implementation remains one shared model; profile boundaries are documentation and mapping boundaries, not runtime type boundaries.
Base Profiles
|
Shared model entities:
Entity |
Source |
|---|---|
Dataset |
|
Process |
|
Recipe |
|
Sample |
|
Data |
|
Descriptor |
|
Annotation |
|
FormalParameter |
|
DefinedTerm |
|
Agent |
|
Organization |
|
ScholarlyArticle |
Base profile entry points:
Base Profile |
Purpose |
Source |
|---|---|---|
Process Provenance |
Provenance through datasets, processes, protocols, samples, data, and annotations |
|
Semantic Designation |
Semantic descriptions that connect datasets, samples, and data with bundled annotations |
|
Administrative |
Dataset metadata, agents, affiliations, citations, licenses, and dates |
Decorations
Decorations add domain-specific meaning through additionalType, specialized properties, and decoration-specific entities.
Decoration |
Purpose |
Source |
|---|---|---|
ISA |
Investigation, Study, Assay, Source, Sample, and ISA property value roles |
|
Workflow Run |
Workflow and Run datasets, workflow protocols, and workflow invocations |
|
Datamap |
Data files, selected fragments, and DataContext descriptors |
Naming Notes
The Process Provenance vocabulary uses Process and Recipe, not the older placeholder names Process and Protocol.
For process I/O, the current core and YAML schema names are:
inputsoutputsexecutesRecipeparameterValueadditionalProperty
Some legacy/profile-shaped examples and upstream references use RO-Crate or Bioschemas names such as object and result. See Examples and schemas for how those files are treated.
Querying
The query use cases are described in Querying. The implementation exposes Path as a returned value object, while traversal and query operations are attached to the model types in src/ProcessCore/Graph.fs.
ProcessCore