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(seefair2s: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 withsh: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:L1orfair2: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:fileObjector acr:fileSet— and, throughcr: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:MethodSectionis a legacy alias forfair2:Section, retained for backward compatibility; the shape targetsfair2: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
Placemay carry a name, description, and identifier. - schema:geo: a geometry, either a
GeoShape(bounding box / polygon) or aGeoCoordinatespoint. - 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
GeoShapemust declare at least one geometry (box,polygon,line, orcircle).
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
ifcondition 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.