ARC Datamap RO-Crate profile
- Version: 0.1
- Authors: ARC RO-Crate community
- License: MIT License
- Example conforming crate: ro-crate-metadata.json
- Profile Crate: ro-crate-metadata.jsonld
- Extends:
- JSON-LD context: https://www.researchobject.org/ro-terms/arc/context.jsonld
-
Vocabulary terms: https://w3id.org/ro/terms/arc#
- Table of contents
Overview
This profile is an instantiation of the Semantic Designation profile, intended to represent the ARC datamap in the RO-Crate. The datamap contains contextual information for fragments within data files. Hence, these contextual information is represented as interpretations for the corresponding data entities.
To model data fragments, this profile extends the existing hierarchy at the bottom using the same mechanisms as in the normal RO-Crate data model:
Data files are already referenced in their respective datasets through hasPart.
Fragments are of type MediaObject (equivalent to File) and referenced by their parent file or fragment through hasPart.

We add the contextual information per entry in the datamap to the Dataset objects, conforming with the Semantic Designation Profile.
Accordingly, the fragments and their information then reference each other.
See our peer-reviewed publication for more information on the datamap and its usage: Fragment-level FAIRness
Detailed Description
We use MediaObject for data fragments and annotate them through descriptor objects for external metadata as described in the Semantic Designation Profile. Both objects reference each other. The Dataset object lists all datamap entries. Specifically, we plan the following:
- Each entry in the datamap becomes one entry in
mentionsof typePropertyValue. - Each data fragment becomes an object of type
MediaObject, referenced from its file object throughhasPart. - Each entry of the datamap becomes a semantic descriptor of type
ItemListandStatementwith an assertion in the form of aPropertyValueobject. - The data fragments and their descriptors referennce each other through the
aboutandsubjectOfproperties.
flowchart TD
dataset[Datamap=Dataset]
DataFile[Data=File]
DataFragment[DataFragment=MediaObject]
desc[DataContext=Statement/ItemList]
prop[Interpretation=PropertyValue]
DataFile --hasPart--> DataFragment
dataset --hasPart--> DataFile
DataFragment --subjectOf--> desc
desc --about--> DataFragment
dataset --mentions--> desc
desc --itemListElement--> prop
Example Metadata File (ro-crate-metadata.json)
{
"@context": [
"https://w3id.org/ro/crate/1.2/context",
{
"Sample": "https://bioschemas.org/Sample",
"LabProtocol": "https://bioschemas.org/LabProtocol",
"LabProcess": "https://bioschemas.org/LabProcess",
"computationalTool": "https://bioschemas.org/properties/computationalTool",
"labEquipment": "https://bioschemas.org/properties/labEquipment",
"reagent": "https://bioschemas.org/properties/reagent",
"intendedUse": "https://bioschemas.org/properties/intendedUse",
"executesLabProtocol": "https://bioschemas.org/properties/executesLabProtocol",
"parameterValue": "https://bioschemas.org/properties/parameterValue",
"columnIndex": "https://w3id.org/ro/terms/arc#columnIndex"
}
],
"@graph": [
{
"@id": "http://purl.obolibrary.org/obo/NCIT_C45253",
"@type": "DefinedTerm",
"name": "string",
"termCode": "http://purl.obolibrary.org/obo/NCIT_C45253"
},
{
"@id": "processed_data.csv#col=1",
"@type": "File",
"name": "processed_data.csv#col=1",
"encodingFormat": "text/csv",
"usageInfo": "https://datatracker.ietf.org/doc/html/rfc7111",
"pattern": {
"@id": "http://purl.obolibrary.org/obo/NCIT_C45253"
},
"subjectOf": {
"@id": "#Descriptor_processed_data.csv#col=1"
}
},
{
"@id": "http://purl.obolibrary.org/obo/NCIT_C48150",
"@type": "DefinedTerm",
"name": "float",
"termCode": "http://purl.obolibrary.org/obo/NCIT_C48150"
},
{
"@id": "processed_data.csv#col=2",
"@type": "File",
"name": "processed_data.csv#col=2",
"encodingFormat": "text/csv",
"usageInfo": "https://datatracker.ietf.org/doc/html/rfc7111",
"pattern": {
"@id": "http://purl.obolibrary.org/obo/NCIT_C48150"
},
"subjectOf": {
"@id": "#Descriptor_processed_data.csv#col=2"
}
},
{
"@id": "processed_data.csv#col=3",
"@type": "File",
"name": "processed_data.csv#col=3",
"encodingFormat": "text/csv",
"usageInfo": "https://datatracker.ietf.org/doc/html/rfc7111",
"pattern": {
"@id": "http://purl.obolibrary.org/obo/NCIT_C48150"
},
"subjectOf": {
"@id": "#Descriptor_processed_data.csv#col=3"
}
},
{
"@id": "processed_data.csv",
"@type": "File",
"name": "processed_data.csv",
"encodingFormat": "text/csv",
"hasPart": [
{
"@id": "processed_data.csv#col=1"
},
{
"@id": "processed_data.csv#col=2"
},
{
"@id": "processed_data.csv#col=3"
}
]
},
{
"@id": "#Descriptor_processed_data.csv#col=1",
"@type": [ "Statement", "ItemList" ],
"about": {
"@id": "processed_data.csv#col=1"
},
"itemListElement": [
{ "@id": "#Explication_processed_data.csv#col=1" }
]
},
{
"@id": "#Descriptor_processed_data.csv#col=2",
"@type": [ "Statement", "ItemList" ],
"about": {
"@id": "processed_data.csv#col=2"
},
"itemListElement": [
{ "@id": "#Explication_processed_data.csv#col=2" }
]
},
{
"@id": "#Descriptor_processed_data.csv#col=3",
"@type": [ "Statement", "ItemList" ],
"about": {
"@id": "processed_data.csv#col=3"
},
"itemListElement": [
{ "@id": "#Explication_processed_data.csv#col=3" }
]
},
{
"@id": "#Explication_processed_data.csv#col=1",
"@type": "PropertyValue",
"name": "Explication",
"value": "Protein identifier",
"propertyID": "https://github.com/nfdi4plants/ARC-specification/blob/dev/ISA-XLSX.md#datamap-table-sheets",
"valueReference": "http://purl.obolibrary.org/obo/NCIT_C165059",
"alternateName": "protID"
},
{
"@id": "#Explication_processed_data.csv#col=2",
"@type": "PropertyValue",
"name": "Explication",
"value": "molecule count",
"propertyID": "https://github.com/nfdi4plants/ARC-specification/blob/dev/ISA-XLSX.md#datamap-table-sheets",
"unitCode": "http://purl.obolibrary.org/obo/NCIT_C68892",
"unitText": "Millimole per Kilogram",
"valueReference": "http://purl.obolibrary.org/obo/UO_0000192",
"alternateName": "quant1"
},
{
"@id": "#Explication_processed_data.csv#col=3",
"@type": "PropertyValue",
"name": "Explication",
"value": "molecule count",
"propertyID": "https://github.com/nfdi4plants/ARC-specification/blob/dev/ISA-XLSX.md#datamap-table-sheets",
"unitCode": "http://purl.obolibrary.org/obo/NCIT_C68892",
"unitText": "Millimole per Kilogram",
"valueReference": "http://purl.obolibrary.org/obo/UO_0000192",
"alternateName": "quant2"
},
{
"@id": "LICENSE",
"@type": "CreativeWork",
"text": "ALL RIGHTS RESERVED BY THE AUTHORS"
},
{
"@id": "./",
"@type": "Dataset",
"description": "An example of a ROCrate with a datamap, including annotation of a tabular data file.",
"name": "ARC Datamap Crate Example",
"hasPart": {
"@id": "processed_data.csv"
},
"mentions": [
{
"@id": "#Descriptor_processed_data.csv#col=1"
},
{
"@id": "#Descriptor_processed_data.csv#col=2"
},
{
"@id": "#Descriptor_processed_data.csv#col=3"
}
],
"dateCreated": "2026-06-25T22:58:40.2416018",
"license": {
"@id": "LICENSE"
}
},
{
"@id": "ro-crate-metadata.json",
"@type": "CreativeWork",
"conformsTo": {
"@id": "https://w3id.org/ro/crate/1.2"
},
"about": {
"@id": "./"
}
}
]
}
Requirements
Dataset
Object containing and annotating data files and fragments. In the context of this profile, this object is used to represent the datamap and its entries.
| Property | Required | Expected Type | Description |
|---|---|---|---|
| @type | MUST | Text | Must be ‘schema.org/Dataset’ |
| @id | MUST | Text or URL | Should be a subdirectory corresponding to this dataset. |
| hasPart | SHOULD | File | The data files resulting from the processes performed in this dataset. |
| mentions | COULD | Text or schema.org/PropertyValue | A fragment description entry from the datamap as a PropertyValue following the fragment description profile. |
Data (File)
Describes and points to a Data file.
| Property | Required | Expected Type | Description |
|---|---|---|---|
| @type | MUST | Text | Must be ‘File’ or ‘MediaObject’ |
| @id | MUST | Text or URL | Should be the path pointing to the file./ |
| name | MUST | Text or URL | The name of the file. |
| comment | COULD | schema.org/Comment | Comment |
| encodingFormat | COULD | Text or URL | Media format as a MIME type |
| hasPart | COULD | File | The data fragments within this file. They must follow the Data Fragment profile. |
Data Fragment
Describes and points to a Fragment of a Data file. In addition to the filepath, the @id property must contain a fragment selector(separated by a #) to point to the specific fragment within the file. The specifcation describing the fragment selector should be provided in the usageInfo property.
| Property | Required | Expected Type | Description |
|---|---|---|---|
| @type | MUST | Text | Must be ‘File’ or ‘MediaObject’ |
| @id | MUST | Text or URL | Should be the path pointing to the file with a fragment selector attached. |
| usageInfo | MUST | Text or URL | (Formal) Description of the fragment selector. |
| about | SHOULD | schema.org/PropertyValue | The fragment description for this fragment. It must follow the fragment description profile. |
| pattern | SHOULD | schema.org/DefinedTerm | Defines the shape or format of entries in this fragment. |
| name | COULD | Text or URL | The name of the file. |
| comment | COULD | schema.org/Comment | Comment |
| encodingFormat | COULD | Text or URL | Media format as a MIME type |
Fragment Descriptor
Adds further annotation to a Data file or a Fragment thereof.
| Property | Required | Expected Type | Description |
|---|---|---|---|
| @type | MUST | Text | Must be [schema.org/Statement, schema.org/ItemList] |
| @id | MUST | Text or URL | |
| about | MUST | schema.org/MediaObject | The described data fragement using a fragment selector, following the data fragment profile. |
| itemListElement | MUST | schema.org/PropertyValue | The assertion described in the datamap entry. |
Descriptor Assertion
The actual assertion of a datamap entry, describing the contents of a data fragment. It is represented as a PropertyValue object.
| Property | Required | Expected Type | Description |
|---|---|---|---|
| @type | MUST | Text | Must be ‘schema.org/PropertyValue’ |
| @id | MUST | Text or URL | |
| name | MUST | Text | Must be "Explication" |
| propertyID | MUST | URL | MUST be "https://purl.org/nfdi4plants/ontology/dpbo/DPBO_0000111" |
| value | SHOULD | Text | Explication of the data fragment contents |
| valueReference | SHOULD | URL | Value ontology reference |
| unitText | SHOULD | Text | Unit of the data fragment |
| unitCode | SHOULD | URL | Unit ontology reference |
| alternateName | SHOULD | Text | The label of the fragment, e.g. a column header. |
| measurementMethod | SHOULD | Text | Name of the tool used to create the data. |
| description | SHOULD | Text | Can be used to describe further details of the fragment |