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 = schema:HowToSection)
A major methodological unit (e.g., "Structure Prediction", "Binding Assays").
{
"@type": "HowToSection",
"@id": "#section-structure-prediction",
"name": "Structure Prediction",
"steps": [ ... ]
}
Step (fair2:Step = schema:HowToStep)
Primary procedural element. Must contain text, and can include substeps or conditions.
{
"@type": "HowToStep",
"@id": "#step-alphafold",
"text": "Run AlphaFold prediction using ColabFold pipeline.",
"substeps": [ ... ],
"conditions": [ ... ]
}
Substep (fair2:Substep = schema:HowToStep)
A finer-grained instruction within a Step.
{
"@type": "HowToStep",
"@id": "#substep-prepare-input",
"text": "Prepare FASTA input and validate sequence."
}
StepCase (fair2:StepCase = schema:HowToStep)
Used to capture conditional logic (e.g., environment-dependent, tool-specific alternatives).
{
"@type": "HowToStep",
"@id": "#stepcase-gpu",
"name": "If GPU is available",
"text": "Run full-db AlphaFold with GPU acceleration."
}
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 Activities
Steps may link to provenance-aware prov:Activity elements for detailed tracking:
"wasGeneratedBy": {
"@type": "prov:Activity",
"type": "Prediction",
"wasAssociatedWith": { "@type": "prov:Agent", "name": "AlphaFold v2.3" }
}
Example JSON-LD Block
{
"@type": "fair2:Section",
"name": "Structure Prediction",
"steps": [
{
"@type": "fair2:Step",
"text": "Run AlphaFold prediction.",
"substeps": [
{ "@type": "fair2:Substep", "text": "Prepare FASTA sequence input." },
{ "@type": "fair2:Substep", "text": "Launch ColabFold and upload sequence." }
],
"conditions": [
{ "@type": "fair2:StepCase", "name": "GPU available", "text": "Use full-db AlphaFold." },
{ "@type": "fair2:StepCase", "name": "CPU only", "text": "Use reduced-db fallback mode." }
]
}
]
}
SHACL Compliance
All method representations must conform to the MethodShape defined in FAIR² SHACL:
@typemust beschema:HowToSectionorschema:HowToStepstepsmust be an array ofschema:HowToSteptextis mandatory for all procedural steps
Notes
- This pattern allows nesting to arbitrary depth.
- Textual content can be multilingual using
@languagetags. - Conditions and substeps are optional but recommended for clarity and modularity.
This structured approach enables both human-readable and machine-actionable protocols across diverse scientific domains. For more examples, see the fair2.json specification.