Skip to content

FAIR² Schema


schema:DatasetShape

Targets: schema:Dataset

Property Type Cardinality Mandatory
schema:distribution schema:DataDownload/schema:FileObject [1..∞] Yes
cr:recordSet RecordSet [1..∞] Yes
schema:description xsd:string [1..∞] Yes
schema:license xsd:anyURI [1..∞] Yes
schema:name xsd:string [1..∞] Yes
schema:url xsd:anyURI [1..∞] Yes
dct:conformsTo fair2s:IdentifierShape [1..∞] Yes
Constraint notes
  • schema:distribution: A dataset must have at least one distribution.
  • cr:recordSet: A dataset must have at least one record set.
  • schema:description: A dataset must have a description.
  • schema:license: A dataset must have a license.
  • schema:name: A dataset must have a name.
  • schema:url: A dataset must have a URL.
  • dct:conformsTo: A dataset must reference the URI of the FAIR² specification version it conforms to.

fair2s:DatasetShape

Targets: schema:Dataset

Property Type Cardinality Mandatory
schema:accessRights fair2s:AccessRightsShape [0..∞] No
cr:citeAs xsd:string [0..∞] No
fair2:changeLog fair2s:UpdateActionShape [0..∞] No
fair2:dataArchive fair2s:DataArchiveShape [0..∞] No
fair2:dataArticle fair2s:ArticleShape [1..∞] Yes
fair2:dataPortal fair2s:DataPortalShape [0..∞] No
fair2:domain fair2s:DomainShape [0..∞] No
fair2:methodSection fair2s:MethodSectionShape [0..∞] No
fair2s:socialMedia fair2s:SocialMediaShape [0..∞] No
cr:recordSet fair2s:RecordSetShape [0..∞] No
prov:qualifiedAttribution fair2s:AttributionShape [0..∞] No
schema:creator fair2s:PersonOrOrganizationShape [1..∞] Yes
schema:dateCreated xsd:date [0..∞] No
schema:datePublished xsd:date [0..∞] No
schema:dateUpdated xsd:date [0..∞] No
schema:description fair2s:TextShape [1..∞] Yes
schema:distribution cr:FileObject (fair2s:DistributionShape) or cr:FileSet (fair2s:FileSetShape) [1..∞] Yes
schema:funding fair2s:GrantShape [0..∞] No
schema:identifier fair2s:IdentifierShape [1..∞] Yes
schema:keywords fair2s:TextShape [1..∞] Yes
schema:license fair2s:IdentifierShape [1..∞] Yes
schema:name fair2s:TextShape [1..∞] Yes
schema:spatialCoverage fair2s:SpatialCoverageShape [0..∞] No
schema:subjectOf fair2s:CreativeWorkShape [0..∞] No
schema:temporalCoverage fair2s:TextShape (ISO 8601 pattern) [0..∞] No
schema:url fair2s:IdentifierShape [1..∞] Yes
schema:version fair2s:TextShape [1..∞] Yes
Constraint notes
  • schema:accessRights: Dataset may name its access tier (fair2:L0, fair2:L1, fair2:L2). The governance blocks (fair2:access, fair2:constraints, …) are optional and not constrained by this shape; see Governance Blocks.
  • cr:citeAs: Dataset may include a full 'cite as' text citation.
  • fair2:changeLog: Dataset may include a structured changelog for version history.
  • fair2:dataArchive: Dataset may be linked to one or more Data Archives for long-term preservation.
  • fair2:dataArticle: Dataset must be linked to at least one Data Article (Scholarly Article).
  • fair2:dataPortal: Dataset may be linked to one or more Data Portals providing access to the data.
  • fair2:domain: Dataset may declare the domain(s) it belongs to (e.g., marine science).
  • fair2:methodSection: Dataset may include one or more method sections describing methodology.
  • fair2s:socialMedia: Dataset may include social media dissemination metadata.
  • cr:recordSet: Dataset may include one or more RecordSet definitions.
  • prov:qualifiedAttribution: Dataset may state, per agent, which roles they held and where they sat in the author list. Replaces schema:contributor (see fair2s:AttributionShape).
  • schema:creator: Dataset must include at least one creator (Person or Organization).
  • schema:dateCreated: Dataset may include its creation date.
  • schema:datePublished: Dataset may include its publication date.
  • schema:dateUpdated: Dataset may include its last updated date.
  • schema:description: Dataset must include a description.
  • schema:distribution: Dataset must have at least one distribution (file object).
  • schema:funding: Dataset may include one or more funding entries.
  • schema:identifier: Dataset must include a persistent identifier (e.g., DOI URI).
  • schema:keywords: Dataset must include at least one keyword.
  • schema:license: Dataset must declare an open license IRI.
  • schema:name: Dataset must include a name.
  • schema:spatialCoverage: Dataset may specify spatial coverage information.
  • schema:subjectOf: Dataset may reference CreativeWorks (e.g., landing page, sameAs links).
  • schema:temporalCoverage: Dataset may specify the temporal coverage as an ISO 8601 date or interval — a single date (2008), a closed interval (1995-01-01/2023-12-31), or an open-ended interval (2013-12-19/..). This format is required by Google Dataset Search; the shape enforces it with sh:pattern.
  • schema:url: Dataset must include its canonical landing-page URL.
  • schema:version: Dataset must specify its version.

fair2s:DistributionShape

Targets: cr:FileObject — one downloadable file.

Property Type Cardinality Mandatory
@id sh:IRI — Yes
schema:name fair2s:TextShape [1..∞] Yes
schema:contentUrl fair2s:IdentifierShape [1..∞] Yes
schema:encodingFormat fair2s:TextShape [1..∞] Yes
schema:contentSize fair2s:TextShape [1..∞] Yes
schema:sha256 fair2s:TextShape [1..∞] Yes
Constraint notes
  • schema:sha256: the SHA-256 checksum mlcroissant expects.
  • schema:contentSize: in bytes unless a unit is given (Croissant).

fair2s:FileSetShape

Targets: cr:FileSet — a collection of homogeneous files selected by glob, such as a folder of images. It has no single size or checksum, so the file requirements above do not apply.

Property Type Cardinality Mandatory
@id sh:IRI — Yes
schema:name fair2s:TextShape [1..∞] Yes
schema:encodingFormat fair2s:TextShape [1..∞] Yes
cr:includes fair2s:TextShape (glob) [1..∞] Yes
cr:excludes fair2s:TextShape (glob) [0..∞] No
cr:containedIn sh:IRI (an archive or manifest distribution) [0..∞] No

Without containedIn, the patterns select files shipped in the package itself.

Changed in v1.5.4

Until v1.5.4 the Dataset's schema:distribution pointed at fair2s:DistributionShape while the shape was defined as schema:DistributionShape. SHACL treats a reference to an undefined shape as one with no constraints, so nothing reached through schema:distribution was checked by it, and there was no shape for cr:FileSet at all. Each distribution must now be typed cr:FileObject or cr:FileSet, and is checked by the shape for its kind. GeoCoordinatesShape moved from schema: to fair2s: for the same reason.

fair2s:AccessRightsShape

Targets: schema:DefinedTerm

Property Type Cardinality Mandatory
@id sh:IRI [0..∞] No
schema:name xsd:string [1..∞] Yes
schema:url sh:IRI [0..∞] No
skos:definition xsd:string [1..∞] Yes
skos:note xsd:string [0..∞] No
Constraint notes
  • @id: AccessRights @id should be a FAIR² access tier: fair2:L0, fair2:L1 or fair2:L2. The Agreement Level IRIs used before v1.7.0 are deprecated.
  • schema:name: AccessRights must have a name (e.g., 'L0 — Open').
  • schema:url: AccessRights URL may point to the tier's definition in Governance Blocks.
  • skos:definition: AccessRights must provide a definition describing the access conditions.
  • skos:note: AccessRights may include a note clarifying additional access information.

fair2s:AuthorShape

Targets: schema:Person

Property Type Cardinality Mandatory
schema:affiliation fair2s:OrganizationShape [1..∞] Yes
schema:identifier `` [1..∞] Yes
schema:name xsd:string [1..∞] Yes
Constraint notes
  • schema:affiliation: Each author must be affiliated with at least one organization.
  • schema:identifier: Each author must include an identifier, preferably an ORCID.
  • schema:name: Each author must have a name.

fair2s:ChangeLogShape

Targets: schema:UpdateAction

Property Type Cardinality Mandatory
prov:wasRevisionOf fair2s:RevisionShape [0..∞] No
schema:datePublished xsd:date [1..∞] Yes
schema:description xsd:string [1..∞] Yes
fair2:newFeatures xsd:string [0..∞] No
fair2:improvements xsd:string [0..∞] No
fair2:bugFixes xsd:string [0..∞] No
fair2:otherInformation xsd:string [0..∞] No
Constraint notes
  • prov:wasRevisionOf: Each changelog entry may reference the previous dataset version using prov:wasRevisionOf.
  • schema:datePublished: Each changelog entry must include a publication date.
  • schema:description: A human-readable summary of the update, as a string.
  • fair2:newFeatures / fair2:improvements / fair2:bugFixes / fair2:otherInformation: Change categories, each a list of strings.

Changed in v1.4.0

Up to v1.3.0 schema:description on a changelog entry took a structured object (fair2s:ChangeDescriptionShape) carrying the four categories as sub-properties. schema:description takes Text, so that shape was a type mismatch with the vocabulary it borrows from, and at the RDF level it asserted that the update's description is a thing with new-features and bug-fixes. The categories are now sibling properties on the UpdateAction itself.

fair2s:AttributionShape

Targets: prov:Attribution

A dataset's relationship to one agent: who they are, what roles they held, and where they sat in the list.

Property Type Cardinality Mandatory
prov:agent sh:IRI [1..1] Yes
prov:hadRole fair2s:ContributorRoleShape [1..∞] Yes
fair2:position xsd:integer [0..1] No
Constraint notes
  • prov:agent: the Person or Organization, by reference. They are described once under schema:creator; the attribution does not repeat them.
  • prov:hadRole: one or more roles, from CRediT, CRO or the FAIR² role vocabulary.
  • fair2:position: ordinal position in the author list, counting from 1.

Changed in v1.4.0 — roles moved off the person

Up to v1.3.0 roles hung off the agent: schema:contributor held a second copy of the author list carrying prov:hadRole. That had three problems. prov:hadRole has domain prov:Influence, so putting it on a schema:Person entails that the person is an influence — nothing errors, a reasoner just draws a false conclusion. The role was not scoped to the dataset, so a SPARQL join returned "datasets contributed to by someone who holds this role somewhere", which is correct only while each person appears in one dataset. And schema:contributor duplicated schema:creator, which in schema.org asserts that everyone is simultaneously primary and secondary.

In the reference example the duplicate list had already drifted: three names were spelled differently in the two copies.

schema:creator is unchanged, so Croissant and schema.org harvesters see what they saw before. The qualified layer is an additional property they ignore.

fair2s:ContributorRoleShape

Property Type Cardinality Mandatory
@id sh:IRI [1..∞] Yes
rdfs:label xsd:string [1..∞] Yes
Constraint notes
  • @id: Each role must have an IRI identifier, typically from CRO or FAIR² namespace.
  • rdfs:label: Each role must have a human-readable label (e.g., DataCuration, Supervision).

fair2s:CreativeWorkShape

Targets: used via schema:subjectOf

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
schema:url fair2s:IdentifierShape [0..∞] No
Constraint notes
  • schema:name: The referenced creative work must have a name.
  • schema:url: It may carry a URL (e.g. the FAIR² specification it conforms to).

fair2s:DataArticleShape

Targets: schema:ScholarlyArticle

Property Type Cardinality Mandatory
prov:wasDerivedFrom sh:IRI [1..∞] Yes
schema:datePublished xsd:date [1..∞] Yes
schema:name xsd:string [1..∞] Yes
schema:publication fair2s:PublicationShape [1..∞] Yes
schema:publisher fair2s:PublisherShape [1..∞] Yes
schema:version xsd:string [1..∞] Yes
fair2:changeLog fair2s:UpdateActionShape [0..∞] No
Constraint notes
  • prov:wasDerivedFrom: Data article must reference the dataset DOI or persistent identifier.
  • schema:datePublished: Data article must have a publication date.
  • schema:name: Data article must include a title.
  • schema:publication: Data article must reference a publication (journal or periodical).
  • schema:publisher: Data article must specify a publisher organization.
  • schema:version: Data article must specify its version (e.g., '1.0').
  • fair2:changeLog: Data article may include a structured changelog for version history.

fair2s:DataPortalShape

Targets: fair2:DataPortal

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
schema:description xsd:string [1..∞] Yes
schema:identifier fair2s:IdentifierShape [1..∞] Yes
schema:version xsd:string [1..∞] Yes
schema:url sh:IRI [1..∞] Yes
schema:keywords xsd:string [1..∞] Yes
schema:author fair2s:PersonOrOrganizationShape [1..∞] Yes
schema:dateCreated xsd:date [0..∞] No
schema:datePublished xsd:date [0..∞] No
schema:dateUpdated xsd:date [0..∞] No
fair2:changeLog fair2s:UpdateActionShape [0..∞] No
fair2:dataset fair2s:IdentifierShape [0..∞] No
Constraint notes
  • schema:name: Data portal must include a name.
  • schema:description: Data portal must include a description.
  • schema:identifier: Data portal must include a persistent identifier (e.g., URL or DOI).
  • schema:version: Data portal must specify its version.
  • schema:url: Data portal must include a URL pointing to the portal's web address.
  • schema:keywords: Data portal must include at least one keyword.
  • schema:author: Data portal must include at least one author or maintaining organization.
  • schema:dateCreated: Data portal may include its creation date.
  • schema:datePublished: Data portal may include its publication date.
  • schema:dateUpdated: Data portal may include its last updated date.
  • fair2:changeLog: Data portal may include a structured changelog for version history.
  • fair2:dataset: Data portal may reference the dataset(s) it provides access to.

fair2s:DataArchiveShape

Targets: fair2:DataArchive

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
schema:description xsd:string [1..∞] Yes
schema:identifier fair2s:IdentifierShape [1..∞] Yes
schema:version xsd:string [1..∞] Yes
schema:keywords xsd:string [1..∞] Yes
schema:holdingArchive fair2s:IdentifierShape [1..∞] Yes
schema:author fair2s:PersonOrOrganizationShape [1..∞] Yes
schema:dateCreated xsd:date [0..∞] No
schema:datePublished xsd:date [0..∞] No
schema:dateUpdated xsd:date [0..∞] No
fair2:changeLog fair2s:UpdateActionShape [0..∞] No
fair2:dataset fair2s:IdentifierShape [0..∞] No
Constraint notes
  • schema:name: Data archive must include a name.
  • schema:description: Data archive must include a description.
  • schema:identifier: Data archive must include a persistent identifier (e.g., DOI or URL).
  • schema:version: Data archive must specify its version.
  • schema:keywords: Data archive must include at least one keyword.
  • schema:holdingArchive: Data archive must reference the institution responsible for holding the archive (e.g., Zenodo, SEANOE).
  • schema:author: Data archive must include at least one author or responsible organization.
  • schema:dateCreated: Data archive may include its creation date.
  • schema:datePublished: Data archive may include its publication date.
  • schema:dateUpdated: Data archive may include its last updated date.
  • fair2:changeLog: Data archive may include a structured changelog for version history.
  • fair2:dataset: Data archive may reference the dataset(s) it stores.

fair2s:DomainShape

Targets: schema:Thing

Property Type Cardinality Mandatory
@id sh:IRI [0..∞] No
prov:wasAttributedTo fair2s:AuthorShape [1..∞] Yes
schema:name xsd:string [1..∞] Yes
Constraint notes
  • @id: Domain entries should ideally reference a controlled vocabulary (e.g., Wikidata).
  • prov:wasAttributedTo: Each domain should be attributed to at least one Person (creator or expert).
  • schema:name: Each domain entry must include a name (e.g., 'Marine Biology').

fair2s:ContactShape

Targets: used via prov:wasAttributedTo

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
schema:identifier fair2s:IdentifierShape [0..∞] No
Constraint notes
  • A reusable shape for a contact (Person or Organization) attributed to a classification such as a domain.
  • schema:name: The contact must have a name.
  • schema:identifier: It may carry an identifier (e.g. an ORCID or ROR).

fair2s:FieldShape

Targets: the objects of cr:field (a statistic, also a cr:Field, is checked by fair2s:AnnotationShape)

Property Type Cardinality Mandatory
cr:dataType IRI [1..∞] Yes
cr:source fair2s:SourceShape [1..∞] Yes
fair2:role xsd:string [0..1] No
schema:description xsd:string [1..∞] Yes
schema:name xsd:string [1..∞] Yes
Constraint notes
  • cr:dataType: The semantic type of the data (e.g., schema:Float).
  • cr:source: The file the values come from — a cr:fileObject or a cr:fileSet — and, through cr:extract/cr:column, the column.
  • fair2:role: One of identifier, dimension, measure, count, category, datetime, geo, filemeta.
  • schema:description: Each Field must include a human-readable description.
  • schema:name: Each Field must have a name.

Units (fair2:unit) and statistics (cr:annotation) are recommended, not required: see Data dictionary.

fair2s:CompositeKeyShape

Targets: fair2:CompositeKey

Property Type Cardinality Mandatory
fair2:fromField IRI (cr:Field) [2..∞] Yes
fair2:toField IRI (cr:Field) [2..∞] Yes

A verified foreign key over several fields. Croissant states one with a cr:references on each source field into the target record set's cr:key; a record set has a single key, so when the target's key is another set of fields the composite is stated with a fair2:CompositeKey instead, in the same order on both sides. fair2:matchedCount, fair2:sourceDistinct, fair2:targetDistinct and fair2:matchRate may record the evidence.

fair2s:FundingOrganizationShape

Targets: schema:Organization

Property Type Cardinality Mandatory
schema:identifier `` [1..∞] Yes
schema:name xsd:string [1..∞] Yes
Constraint notes
  • schema:identifier: Funding organization should include an identifier (e.g., ROR ID).
  • schema:name: Funding organization must include a name.

fair2s:FundingSchemeShape

Targets: schema:FundingScheme

Property Type Cardinality Mandatory
schema:identifier `` [1..∞] Yes
schema:name xsd:string [1..∞] Yes
Constraint notes
  • schema:identifier: Funding scheme must include an identifier (e.g., Horizon Europe code).
  • schema:name: Funding scheme must include a name.

fair2s:FundingShape

Targets: schema:Grant

Property Type Cardinality Mandatory
schema:funder fair2s:FundingOrganizationShape [1..∞] Yes
schema:fundingScheme fair2s:FundingSchemeShape [0..1] No
schema:name xsd:string [1..∞] Yes
schema:url sh:IRI [0..1] No
Constraint notes
  • schema:funder: Each funding entry must specify at least one funder organization.
  • schema:fundingScheme: If provided, fundingScheme must contain valid scheme metadata.
  • schema:name: Each funding entry must include a grant name or title.
  • schema:url: Funding entries may optionally include a URL (e.g., project page).

fair2s:MethodSectionShape

Targets: fair2:Section

Property Type Cardinality Mandatory
fair2:step fair2s:MethodStepShape or fair2s:StepCaseShape [1..∞] Yes
schema:description xsd:string [1..∞] Yes
schema:name xsd:string [1..∞] Yes
fair2:next sh:IRI [0..∞] No
prov:used sh:IRI [0..∞] No
Constraint notes
  • fair2:step: Each Section must contain at least one Step or StepCase.
  • schema:description: Each Section must include a description summarizing the methodological context.
  • schema:name: Each Section must include a section name.
  • fair2:next: A Section may reference the next section by IRI.
  • prov:used: A Section may reference source documents or scripts (DigitalDocument or SoftwareSourceCode nodes) that were consulted during this section.
  • fair2:MethodSection is a legacy alias for fair2:Section, retained for backward compatibility; the shape targets fair2:Section.

fair2s:OrganizationShape

Targets: schema:Organization

Property Type Cardinality Mandatory
schema:address xsd:string [1..∞] Yes
schema:identifier `` [1..∞] Yes
schema:name xsd:string [1..∞] Yes
Constraint notes
  • schema:address: Organization should include a postal address.
  • schema:identifier: Organization should include a persistent identifier (e.g., ROR).
  • schema:name: Organization must have a name.

fair2s:PublicationShape

Targets: schema:Periodical

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
Constraint notes
  • schema:name: Publication must include a name (journal or periodical title).

fair2s:PublisherShape

Targets: schema:Organization

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
Constraint notes
  • schema:name: Publisher organization must include a name.

fair2s:RecordSetShape

Targets: cr:RecordSet

Property Type Cardinality Mandatory
cr:field fair2s:FieldShape [1..∞] Yes
schema:description xsd:string [1..∞] Yes
schema:name xsd:string [1..∞] Yes
Constraint notes
  • cr:field: Each RecordSet must define at least one Field.
  • schema:description: Each RecordSet must include a description.
  • schema:name: Each RecordSet must have a name (e.g., 'WATER', 'SEDIMENTS').

fair2s:RevisionShape

Targets: schema:Dataset

Property Type Cardinality Mandatory
schema:identifier sh:IRI [1..∞] Yes
schema:version xsd:string [1..∞] Yes
Constraint notes
  • schema:identifier: Revision reference must include a persistent identifier (e.g., DOI).
  • schema:version: Revision reference must include a version label.

fair2s:SocialMediaShape

Targets: schema:SocialMediaPosting

Property Type Cardinality Mandatory
schema:accountServiceHomePage sh:IRI [1..∞] Yes
schema:articleBody xsd:string [1..∞] Yes
schema:datePublished xsd:date [0..∞] No
schema:identifier xsd:string [1..∞] Yes
schema:keywords xsd:string [1..∞] Yes
schema:url sh:IRI [0..∞] No
Constraint notes
  • schema:accountServiceHomePage: Each entry must specify the social media service homepage as an IRI (e.g., 'https://twitter.com/').
  • schema:articleBody: Each entry must include the message text or post body.
  • schema:datePublished: Optionally, entries may record the publication date of the social media post.
  • schema:identifier: Each social media entry must have a platform identifier (e.g., 'twitter', 'linkedin').
  • schema:keywords: Each entry must list at least one keyword or tag describing its content.
  • schema:url: Optionally, entries may include a direct URL to the social post or related resource.

fair2s:SpatialCoverageShape

Targets: schema:Place

Property Type Cardinality Mandatory
schema:name xsd:string [0..∞] No
schema:description xsd:string [0..∞] No
schema:identifier fair2s:IdentifierShape [0..∞] No
schema:geo fair2s:GeoShapeShape or fair2s:GeoCoordinatesShape [0..∞] No
schema:geoWithin sh:BlankNodeOrIRI [0..∞] No
schema:containsPlace fair2s:SpatialCoverageShape [0..∞] No
Constraint notes
  • A Place may carry a name, description, and identifier.
  • schema:geo: a geometry, either a GeoShape (bounding box / polygon) or a GeoCoordinates point.
  • schema:geoWithin: an enclosing region.
  • schema:containsPlace: nested Places — the shape is recursive.

Spatial coverage is aggregate-only

spatialCoverage describes the extent of a dataset, not its observations. Give the bounding box, and a convex hull or polygon where a tighter envelope is useful. Do not enumerate individual sampling sites as nested Place nodes: their coordinates and codes already live in the record sets, so the enumeration is duplicated content that scales with the data rather than with the description of it. STAC, OGC CSW, DataCite and Zenodo all draw the same line, and Google Dataset Search indexes only the top-level GeoShape.

schema:containsPlace remains available for genuine place hierarchies — a region containing sub-regions — not for point-level enumeration.

fair2s:GeoShapeShape

Targets: schema:GeoShape

Property Type Cardinality Mandatory
schema:box xsd:string one geometry Conditional
schema:polygon xsd:string one geometry Conditional
schema:line xsd:string one geometry Conditional
schema:circle xsd:string one geometry Conditional
Constraint notes
  • A GeoShape must declare at least one geometry (box, polygon, line, or circle).

fair2s:MethodStepShape

Targets: fair2:Step

Property Type Cardinality Mandatory
fair2:generated sh:IRI [0..∞] No
fair2:next sh:IRI [0..∞] No
fair2:substep fair2s:MethodSubstepShape [0..∞] No
prov:used sh:IRI [0..∞] No
schema:description xsd:string [1..∞] Yes
schema:name xsd:string [1..∞] Yes
Constraint notes
  • fair2:generated: If provided, 'generated' should reference produced data elements (e.g., fields, recordSets) by IRI.
  • fair2:next: If provided, 'next' should reference the following step using an IRI.
  • fair2:substep: Substeps may be defined as nested procedural components.
  • prov:used: Step may reference source documents or scripts (DigitalDocument or SoftwareSourceCode nodes) that were used as inputs for this step.
  • schema:description: Each Step must include a description detailing actions or parameters.
  • schema:name: Each Step must include a name.

fair2s:MethodSubstepShape

Targets: fair2:Substep

Property Type Cardinality Mandatory
fair2:next sh:IRI [0..∞] No
prov:used sh:IRI [0..∞] No
schema:description xsd:string [1..∞] Yes
schema:name xsd:string [1..∞] Yes
Constraint notes
  • fair2:next: If provided, 'next' should reference the subsequent substep.
  • prov:used: Substep may reference source documents or scripts used as inputs.
  • schema:description: Each Substep must include a descriptive text.
  • schema:name: Each Substep must include a name.

fair2s:StepCaseShape

Targets: fair2:StepCase

Conditional branching within a method. StepCase items sit in the same fair2:step array as regular Steps.

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
schema:description xsd:string [1..∞] Yes
fair2:qualifiedUsage xsd:string [1..∞] Yes
fair2:nextTrue sh:IRI [1..∞] Yes
fair2:next sh:IRI [0..∞] No
Constraint notes
  • schema:name: Each StepCase must include a condition label.
  • schema:description: Each StepCase must include a description of what the branch does and why.
  • fair2:qualifiedUsage: The if condition governing the branch, as a string.
  • fair2:nextTrue: The path taken when the condition is met, referenced by IRI.
  • fair2:next: Optionally, the default else / fallthrough path.

fair2s:DigitalDocumentShape

Targets: schema:DigitalDocument

Source documents referenced via prov:used in method sections and steps (e.g., READMEs, data dictionaries, protocol specifications).

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
schema:pagination xsd:string [0..∞] No
schema:encodingFormat xsd:string [0..∞] No
schema:url sh:IRI [0..1] No
Constraint notes
  • schema:name: Document must have a human-readable name.
  • schema:pagination: Relative file path to the document within the dataset package (repurposed from schema.org).
  • schema:encodingFormat: MIME type of the document (e.g., text/markdown, text/csv).
  • schema:url: Optionally, a persistent URL for the document.

fair2s:SoftwareSourceCodeShape

Targets: schema:SoftwareSourceCode

Scripts and code files used or produced by method steps, referenced via prov:used or fair2:generated.

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
schema:identifier xsd:string [0..∞] No
schema:encodingFormat xsd:string [0..∞] No
schema:url sh:IRI [0..1] No
schema:programmingLanguage xsd:string [0..∞] No
schema:runtimePlatform xsd:string [0..∞] No
Constraint notes
  • schema:name: Script must have a human-readable name (e.g., filename).
  • schema:identifier: Relative path or persistent identifier for the script.
  • schema:encodingFormat: MIME type of the source file (e.g., text/x-python).
  • schema:url: Optionally, a URL pointing to the script.
  • schema:programmingLanguage: Programming language used (e.g., Python, R).
  • schema:runtimePlatform: Runtime environment (e.g., Python 3.11, R 4.3).

fair2s:ActivityShape

Targets: prov:Activity

A computational or manual activity that uses inputs and produces outputs. Activities link agents to the data they generate.

Property Type Cardinality Mandatory
rdfs:label xsd:string [1..∞] Yes
prov:wasAssociatedWith sh:IRI [0..∞] No
schema:startTime xsd:dateTime [0..1] No
schema:endTime xsd:dateTime [0..1] No
Constraint notes
  • rdfs:label: Activity must have a human-readable name describing the computation or process.
  • prov:wasAssociatedWith: Activity may reference one or more responsible agents (SoftwareAgent, Person, Organization).
  • schema:startTime: Activity may record when it began.
  • schema:endTime: Activity may record when it completed.

fair2s:SoftwareAgentShape

Targets: prov:SoftwareAgent

A software tool or application that performed an activity. Software agents are responsible for automated data processing, extraction, and transformation steps.

Property Type Cardinality Mandatory
schema:name xsd:string [1..∞] Yes
schema:identifier fair2s:IdentifierShape [0..∞] No
schema:softwareVersion xsd:string [0..∞] No
schema:programmingLanguage xsd:string [0..∞] No
Constraint notes
  • schema:name: Software agent must have a name (e.g., Pandas, R, CESM2.2).
  • schema:identifier: Software agent may include a persistent identifier or homepage URL.
  • schema:softwareVersion: Software agent may specify its version (e.g., 2.1.1).
  • schema:programmingLanguage: Software agent may specify its implementation language.