FAIR² Method Representation
This document defines how FAIR² expresses detailed methods using structured, machine-readable JSON-LD constructs. It is fully compatible with schema.org, ML Croissant, and the FAIR² metadata specification.
Overview
Method descriptions in FAIR² are structured hierarchically using the following types:
fair2:Sectionderived fromschema:HowToSectionfair2:Stepderived fromschema:HowToStepfair2:Substepderived fromschema:HowToStepfair2:StepCasederived fromschema:HowToStep
Each level extends or specializes the schema.org/HowToStep pattern, enabling context-rich and modular method representation.
Structure and Semantics
Section (fair2:Section)
A major methodological unit (e.g., "Structure Prediction", "Binding Assays").
| Property | Vocabulary | Required | Description |
|---|---|---|---|
schema:name |
schema.org | Yes | Section title |
schema:description |
schema.org | No | Narrative description |
fair2:step |
FAIR² | No | Steps or StepCases within this section |
fair2:next |
FAIR² | No | IRI of the following section |
{
"@type": "fair2:Section",
"@id": "fair2:method:section-structure-prediction",
"schema:name": "Structure Prediction",
"schema:description": "Computational prediction of 3D protein structures.",
"fair2:step": [ ... ],
"fair2:next": { "@id": "fair2:method:section-binding-assays" }
}
Step (fair2:Step)
Primary procedural element within a Section. May contain substeps and link to produced variables.
| Property | Vocabulary | Required | Description |
|---|---|---|---|
schema:name |
schema.org | Yes | Step title |
schema:description |
schema.org | No | Step instructions |
fair2:substep |
FAIR² | No | Nested substeps |
fair2:next |
FAIR² | No | IRI of the following step |
fair2:generated |
FAIR² | No | IRI(s) of RecordSet fields produced by this step |
{
"@type": "fair2:Step",
"@id": "fair2:method:step-alphafold",
"schema:name": "AlphaFold Prediction",
"schema:description": "Run AlphaFold prediction using ColabFold pipeline.",
"fair2:substep": [ ... ],
"fair2:next": { "@id": "fair2:method:step-rmsd" },
"fair2:generated": [
{ "@id": "fair2:var:rmsd" },
{ "@id": "fair2:var:plddt" }
]
}
Substep (fair2:Substep)
A finer-grained instruction nested within a fair2:Step.
| Property | Vocabulary | Required | Description |
|---|---|---|---|
schema:name |
schema.org | Yes | Substep title |
schema:description |
schema.org | No | Substep instructions |
fair2:next |
FAIR² | No | IRI of the following substep |
{
"@type": "fair2:Substep",
"@id": "fair2:method:substep-prepare-input",
"schema:name": "Prepare FASTA input",
"schema:description": "Prepare FASTA input and validate sequence.",
"fair2:next": { "@id": "fair2:method:substep-launch-colabfold" }
}
StepCase (fair2:StepCase)
Used to capture conditional logic (e.g., environment-dependent or tool-specific alternatives). StepCase items are placed in the same fair2:step array as regular Steps.
| Property | Vocabulary | Required | Description |
|---|---|---|---|
schema:name |
schema.org | Yes | Condition label |
fair2:qualifiedUsage |
FAIR² | Yes | The if condition string |
fair2:nextTrue |
FAIR² | Yes | IRI of the path taken if the condition is met |
fair2:next |
FAIR² | No | IRI of the default else / fallthrough path |
{
"@type": "fair2:StepCase",
"@id": "fair2:method:stepcase-gpu",
"schema:name": "GPU available",
"fair2:qualifiedUsage": "hardware.gpu == true",
"fair2:nextTrue": { "@id": "fair2:method:step-alphafold-full-db" },
"fair2:next": { "@id": "fair2:method:step-alphafold-reduced-db" }
}
Ontological Alignment
Each element inherits from schema:HowToStep, but is semantically specialized via fair2: namespace identifiers. This ensures compatibility with:
- schema.org-based search indexing
- Croissant
Methodconstructs - SHACL validation using RDF types
Integration with Variable Lineage
Steps link to the RecordSet fields/variables they produce via fair2:generated. This is the step-side provenance property; variables reference back to steps via the inverse prov:wasGeneratedBy.
{
"@type": "fair2:Step",
"@id": "fair2:method:step-rmsd",
"schema:name": "RMSD Calculation",
"fair2:generated": [
{ "@id": "fair2:var:rmsd" }
]
}
Example JSON-LD Block
{
"@type": "fair2:Section",
"@id": "fair2:method:section-structure-prediction",
"schema:name": "Structure Prediction",
"schema:description": "End-to-end structure prediction pipeline.",
"fair2:step": [
{
"@type": "fair2:Step",
"@id": "fair2:method:step-alphafold",
"schema:name": "AlphaFold Prediction",
"schema:description": "Run AlphaFold prediction using ColabFold pipeline.",
"fair2:substep": [
{
"@type": "fair2:Substep",
"@id": "fair2:method:substep-prepare-input",
"schema:name": "Prepare FASTA input",
"schema:description": "Prepare FASTA input and validate sequence."
},
{
"@type": "fair2:Substep",
"@id": "fair2:method:substep-launch-colabfold",
"schema:name": "Launch ColabFold",
"schema:description": "Upload sequence and launch ColabFold."
}
],
"fair2:generated": [
{ "@id": "fair2:var:plddt" }
]
},
{
"@type": "fair2:StepCase",
"@id": "fair2:method:stepcase-gpu",
"schema:name": "GPU available",
"fair2:qualifiedUsage": "hardware.gpu == true",
"fair2:nextTrue": { "@id": "fair2:method:step-alphafold-full-db" },
"fair2:next": { "@id": "fair2:method:step-alphafold-reduced-db" }
}
]
}
SHACL Compliance
All method representations must conform to the shapes defined in shapes/turtle/method.ttl:
| Shape | Target class | Required properties |
|---|---|---|
MethodSectionShape |
fair2:Section |
schema:name |
MethodStepShape |
fair2:Step |
schema:name |
MethodSubstepShape |
fair2:Substep |
schema:name |
StepCaseShape |
fair2:StepCase |
schema:name, fair2:qualifiedUsage, fair2:nextTrue |
Notes
- This pattern allows nesting to arbitrary depth.
- Textual content can be multilingual using
@languagetags. fair2:substepandfair2:generatedare optional but recommended for clarity and provenance.fair2:nextenables sequential ordering of sections, steps, and substeps without relying on array index.
This structured approach enables both human-readable and machine-actionable protocols across diverse scientific domains. For more examples, see the fair2.json specification.