Home | DataRepository
In schema.org, we model a repository as both an schema:ResearchProject, a sub-class of an Organization, and a schema:Service. This double-typing gives us the most flexibility in describing the characteristics of the organization providing the service and the services offered by the organization.
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO"
}
The other fields you can use to describe the Organziation and the Service are:
- schema:legalName should be the official name of the repository,
- schema:name can be an acronym or the name typcially used for the repository,
- schema:url should be the url of your repository's homepage,
- schema:description should be text describing your repository,
- schema:sameAs can be used to link the repository to other URLs such as Re3Data, Twitter, LinkedIn, etc.,
- schema:category can be used to describe the discipline, domain, area of study that encompasses the repository's holdings.
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
"description": "The Sample Data Repository Service provides access to data from an imaginary domain accessible from this website.",
"sameAs": [
"http://www.re3data.org/repository/r3d1000000xx",
"https://twitter.com/SDRO",
"https://www.linkedin.com/company/123456789/"
],
"category": [
"Biological Oceanography",
"Chemical Oceanography"
]
}
(See advanced publishing techniques for how to describe categories/disciplines in more detail than just simple text.)
If you are using the "@id" attribute for your Repository, and the provider of the repository's services is the same Organziation, you can specify the schema:provider of the schema:Service in this way:
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"@id": "https://www.sample-data-repository.org",
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
"description": "The Sample Data Repository Service provides access to data from an imaginary domain accessible from this website.",
"category": [
"Biological Oceanography",
"Chemical Oceanography"
],
"provider": {
"@id": "https://www.sample-data-repository.org"
}
}
However, if your repository has a situation where multiple organizations act as the provider or you want to recognize a different organization as the provider of the repository's service, schema:provider can be used in this way:
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
"description": "The Sample Data Repository Service provides access to data from an imaginary domain accessible from this website.",
"category": [
"Biological Oceanography",
"Chemical Oceanography"
],
"provider": [
{
"@type": "ResearchProject",
"name": "SDRO Technical Office",
"description": "We provide all the infrastructure for the SDRO"
...
},
{
"@type": "ResearchProject",
"name": "SDRO Science Support Office",
"description": "We provide all the science support functionality for the SDRO"
...
}
]
}
Adding additional fields of schema:ResearchProject:
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
"description": "The Sample Data Repository Service provides access to data from an imaginary domain accessible from this website.",
"category": [
"Biological Oceanography",
"Chemical Oceanography"
],
"provider": {
"@id": "https://www.sample-data-repository.org"
}
"logo": {
"@type": "ImageObject",
"url": "https://www.sample-data-repository.org/images/logo.jpg"
},
"contactPoint": {
"@type": "ContactPoint",
"name": "Support",
"email": "info@bco-dmo.org",
"url": "https://www.sample-data-repository.org/about-us",
"contactType": "customer support"
},
"foundingDate": "2006-09-01",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St.",
"addressLocality": "Anytown",
"addressRegion": "ST",
"postalCode": "12345",
"addressCountry": "USA"
}
}
If this ResearchProject, or Organization, has a parent entity such as a college, university or research center, that information can be provided using the schema:parentOrganization property:
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
"description": "The Sample Data Repository Service provides access to data from an imaginary domain accessible from this website.",
"category": [
"Biological Oceanography",
"Chemical Oceanography"
],
"provider": {
"@id": "https://www.sample-data-repository.org"
},
"parentOrganization": {
"@type": "Organization",
"@id": "http://www.someinstitute.edu",
"legalName": "Some Institute",
"name": "SI",
"url": "http://www.someinstitute.edu",
"address": {
"@type": "PostalAddress",
"streetAddress": "234 Main St.",
"addressLocality": "Anytown",
"addressRegion": "ST",
"postalCode": "12345",
"addressCountry": "USA"
}
}
}
}
Back to top
Some organizations may have a persistent identifier (DOI) assigned to their organization from authorities like the Registry of Research Data Repositories (re3data.org). The way to describe these organizational identifiers is to use the schema:identifier property in this way:
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
"description": "The Sample Data Repository Service provides access to data from an imaginary domain accessible from this website.",
"category": [
"Biological Oceanography",
"Chemical Oceanography"
],
"provider": {
"@id": "https://www.sample-data-repository.org"
},
"identifier": {
"@type": "PropertyValue",
"name": "Re3data DOI: 10.17616/R37P4C",
"propertyID": "https://registry.identifiers.org/registry/doi",
"value": "doi:10.17616/R37P4C",
"url": "https://doi.org/10.17616/R37P4C"
}
}
For more information on describing identifiers, see the Dataset - Identifier guide.
To describe the funding source of a repository, you use the schema:funder property of schema:Organization:
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
"description": "The Sample Data Repository Service provides access to data from an imaginary domain accessible from this website.",
"category": [
"Biological Oceanography",
"Chemical Oceanography"
],
"provider": {
"@id": "https://www.sample-data-repository.org"
},
"parentOrganization": {
"@type": "Organization",
"@id": "http://www.someinstitute.edu",
"legalName": "Some Institute",
"name": "SI",
"url": "http://www.someinstitute.edu",
"address": {
"@type": "PostalAddress",
"streetAddress": "234 Main St.",
"addressLocality": "Anytown",
"addressRegion": "ST",
"postalCode": "12345",
"addressCountry": "USA"
},
"funder": {
"@type": "Organization",
"@id": "https://doi.org/10.13039/100000141",
"legalName": "Division of Ocean Sciences",
"alternateName": "OCE",
"url": "https://www.nsf.gov/div/index.jsp?div=OCE",
"identifier": {
"@type": "PropertyValue",
"propertyID": "https://registry.identifiers.org/registry/doi",
"value": "doi:10.13039/100000141",
"url": "https://doi.org/10.13039/100000141"
},
"parentOrganization": {
"@type": "Organization",
"@id": "http://doi.org/10.13039/100000085",
"legalName": "Directorate for Geosciences",
"alternateName": "NSF-GEO",
"url": "http://www.nsf.gov",
"identifier": {
"@type": "PropertyValue",
"propertyID": "https://registry.identifiers.org/registry/doi",
"value": "doi:10.13039/100000085",
"url": "https://doi.org/10.13039/100000085"
},
"parentOrganization": {
"@type": "Organization",
"@id": "http://dx.doi.org/10.13039/100000001",
"legalName": "National Science Foundation",
"alternateName": "NSF",
"url": "http://www.nsf.gov",
"identifier": {
"@type": "PropertyValue",
"propertyID": "https://registry.identifiers.org/registry/doi",
"value": "doi:10.13039/100000001",
"url": "https://doi.org/10.13039/100000001"
}
}
}
}
}
}
Back to top
For repositories might offer services for accessing data as opposed to directly accessing data files. The schema:Service allows us to describe these services as well as repository searches, data submission services, and syndication services. In this first example, we describe a search service at the repository using schema:ServiceChannel.
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
...
"availableChannel": [
{
"@type": "ServiceChannel",
"serviceUrl": "https://www.sample-data-repository.org/search",
"providesService": {
"@type": "Service",
"name": "SDRO Website Search",
"description": "Search for webpages, datasets, authors, funding awards, instrumentation and measurements",
"potentialAction": {
"@type": "SearchAction",
"target": "https://www.sample-data-repository.org/search?keywords={query_string}",
"query-input": {
"@type": "PropertyValueSpecification",
"valueRequired": true,
"valueName": "query_string"
}
}
}
}
]
}
By specifying the schema:potentialAction, we create a machine-actionable way to execute searches.
Back to top
If your repository has a concept of a data collection, some grouping of a number of datasets, we can use the schema:DataCatalog to describe these collections using the schema:OfferCatalog. One exampel of a DataCatalog might be to group datasets by a categorization such as 'biological data' or 'chemical data'. Or a catalog could be grouped by instrument, parameter or whatever logical grouping a repository may have.
{
"@context": "https://schema.org/",
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
...
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Sample Data Repository Resource Catalog",
"itemListElement": [
{
"@type": "DataCatalog",
"@id": "https://www.sample-data-repository.org/collection/biological-data",
"name": "Biological Data",
"audience": {
"@type": "Audience",
"audienceType": "public",
"name": "General Public"
}
},
{
"@type": "DataCatalog",
"@id": "https://www.sample-data-repository.org/collection/geological-data",
"name": "Geological Data",
"audience": {
"@type": "Audience",
"audienceType": "public",
"name": "General Public"
}
}
]
}
}
Back to top
The SWEET ontology defines a number of science disciplines and a repository could reference those, or another vocabuary's resources, by adding the vocabular to the @context attribute of the JSON-LD markup.
{
"@context": [
"https://schema.org/",
{
"sweet-rel": "http://sweetontology.net/rela/",
"sweet-kd": "http://sweetontology.net/humanKnowledgeDomain/"
}
],
"@type": ["Service", "ResearchProject"],
"legalName": "Sample Data Repository Office",
"name": "SDRO",
"url": "https://www.sample-data-repository.org",
"description": "The Sample Data Repository Service provides access to data from an imaginary domain accessible from this website.",
"sweet-rel:hasRealm": [
{ "@id": "sweet-kd:Biogeochemistry" },
{ "@id": "sweet-kd:Oceanography" }
]
}
Back to top