resource-catalogue-docs

Resource Catalogue Documentation [v5.0.0]

License Contributor Covenant


Work in Progress: This section is a work in progress and is subject to modification.

Description

Resource Catalogue Documentation provides a comprehensive guide to the API endpoints, models, and core components of the Resource Catalogue project, offering detailed descriptions of each controller, along with their associated functionalities and endpoints. It includes an overview of its data models and a detailed list of vocabularies used within the platform. Additionally, the documentation provides schemas for validating data of the various classes, ensuring consistency and reliability across the system.


Table of Contents

  1. API
  2. Swagger UI
  3. Controllers
    1. Adapter Controller
    2. Catalogue Controller
    3. Configuration Template Instance Controller
    4. Datasource Controller
    5. Interoperability Record Controller
    6. Provider Controller
    7. Public Controller
    8. Resource Interoperability Record Controller
    9. Service Controller
    10. Service Extensions Controller
    11. Training Resource Controller
    12. Vocabulary Controller
  4. Model
    1. Adapter
    2. Catalogue
    3. Configuration Template Instance
    4. Datasource
    5. Helpdesk
    6. Interoperability Record
    7. Monitoring
    8. Provider
    9. Resource Interoperability Record
    10. Service
    11. Training Resource
    12. Vocabulary
  5. List of Vocabularies
  6. Data Validation

API


Swagger UI


Controllers


Model

Adapter

Field Type Required Description
id String auto-gen Unique identifier for the adapter.
name String Yes Full name of the adapter.
catalogueId String Yes Identifier of the catalogue containing this record.
node String No Adapter’s original Node
description String Yes Description of the catalogue.
linkedResource LinkedResource Yes Identifier of the EOSC Guideline or Service ID.
tagline String No Short tagline summarizing the adapter.
logo URI No URI of the adapter’s logo.
documentation URI Yes Documentation webpage (e.g., read-the-docs page).
repository URI Yes Code repository webpage (e.g., a GitHub repository).
releases List<URI> No Links to the latest package release page(s) (e.g., PyPI project, Docker image, GitHub releases page).
programmingLanguage String Yes Programming language.
license String Yes Software/Code license (e.g., MIT, Apache, GPL).
version String Yes Software version.
changeLog String Yes Changes in the latest version.
lastUpdate Date Yes Latest update date.
admins List<User> Yes Adapter user admins.

Nested Objects

LinkedResource
Field Type Required Description
type String Yes Type of the linked resource.
id String Yes ID of the linked resource.
User
Field Type Required Description
id String No Unique identifier for the user.
email String Yes Email address of the user.
name String Yes First name of the user.
surname String Yes Last name of the user.

Example

{
  "id": "adapter_001",
  "name": "Sample Adapter",
  "catalogueId": "catalogue_001",
  "node": "node-sandbox",
  "description": "This is a sample adapter description.",
  "linkedResource": {
    "type": "service",
    "id": "service_001"
  },
  "tagline": "Sample tagline",
  "logo": "https://example.com/logo.png",
  "documentation": "https://example.com/documentation",
  "repository": "https://example.com/repository",
  "releases": [
    "https://example.com/release1",
    "https://example.com/release2"
  ],
  "programmingLanguage": "Python",
  "license": "Sample license",
  "version": "version 1",
  "changeLog": "updated",
  "lastUpdate": "2025-06-19T13:10:58.119Z",
  "admins": [
    {
      "id": "user_001",
      "email": "user@example.com",
      "name": "User Name",
      "surname": "Surname"
    }
  ]
}

Catalogue

Field Type Required Description
id String auto-gen Unique identifier for the catalogue.
abbreviation String Yes Abbreviation of the catalogue’s name.
name String Yes Full name of the catalogue.
website URL Yes URL of the catalogue’s website.
legalEntity boolean Yes Indicates if the catalogue is a legal entity.
legalStatus String No Legal status of the catalogue.
hostingLegalEntity String No Hosting legal entity responsible for the catalogue.
inclusionCriteria URL Yes URL with criteria for inclusion in the catalogue.
validationProcess URL Yes URL describing the validation process.
endOfLife String No Information on the end-of-life policies for the catalogue.
description String Yes Description of the catalogue.
scope String Yes Scope of the catalogue.
logo URL Yes URL of the catalogue’s logo.
multimedia List<MultimediaPair> No List of multimedia items associated with the catalogue.
scientificDomains List<ServiceProviderDomain> No Scientific domains related to the catalogue’s service providers.
tags List<String> No Tags associated with the catalogue.
location ProviderLocation Yes Physical location details of the catalogue provider.
mainContact ProviderMainContact Yes Main contact information for the catalogue.
publicContacts List<ProviderPublicContact Yes List of public contacts for the catalogue.
participatingCountries List<String> No List of countries participating in the catalogue.
affiliations List<String> No List of affiliations related to the catalogue.
networks List<String> No Networks associated with the catalogue.
users List<User> Yes List of users associated with the catalogue.

Nested Objects

MultimediaPair
Field Type Required Description
multimediaURL URL Yes URL to the multimedia resource.
multimediaName String No Name of the multimedia resource.
ServiceProviderDomain
Field Type Required Description
scientificDomain String Yes Scientific domain related to the catalogue.
scientificSubdomain String No Scientific subdomain related to the catalogue.
ProviderLocation
Field Type Required Description
streetNameAndNumber String Yes Street address of the catalogue’s location.
postalCode String Yes Postal code of the catalogue’s location.
city String Yes City where the catalogue is located.
region String No Region or state where the catalogue is located.
country String Yes Country where the catalogue is located.
ProviderMainContact
Field Type Required Description
firstName String Yes First name of the main contact person.
lastName String No Last name of the main contact person.
email String Yes Email address of the main contact person.
phone String No Phone number of the main contact person.
position String No Position of the main contact person.
organisation String No Organisation of the main contact person.
ProviderPublicContact
Field Type Required Description
firstName String No First name of the public contact person.
lastName String No Last name of the public contact person.
email String Yes Email address of the public contact person.
phone String No Phone number of the public contact person.
position String No Position of the public contact person.
organisation String No Organisation of the public contact person.
User
Field Type Required Description
id String No Unique identifier for the user.
email String Yes Email address of the user.
name String Yes First name of the user.
surname String Yes Last name of the user.

Example

{
  "id": "catalogue_001",
  "abbreviation": "CAT",
  "name": "Sample Catalogue",
  "website": "https://example.com",
  "legalEntity": true,
  "legalStatus": "Non-profit",
  "hostingLegalEntity": "Hosting Entity",
  "inclusionCriteria": "https://example.com/inclusion",
  "validationProcess": "https://example.com/validation",
  "endOfLife": "No specific policy",
  "description": "This is a sample catalogue description.",
  "scope": "International",
  "logo": "https://example.com/logo.png",
  "multimedia": [
    {
      "multimediaURL": "https://example.com/media",
      "multimediaName": "Sample Multimedia"
    }
  ],
  "scientificDomains": [
    {
      "scientificDomain": "Science",
      "scientificSubdomain": "Physics"
    }
  ],
  "tags": ["science", "research"],
  "location": {
    "streetNameAndNumber": "123 Main St",
    "postalCode": "12345",
    "city": "Sample City",
    "region": "Sample Region",
    "country": "Sample Country"
  },
  "mainContact": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "phone": "+123456789",
    "position": "Manager"
  },
  "publicContacts": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com",
      "phone": "+987654321",
      "position": "Support"
    }
  ],
  "participatingCountries": ["Country1", "Country2"],
  "affiliations": ["Affiliation1", "Affiliation2"],
  "networks": ["Network1", "Network2"],
  "users": [
    {
      "id": "user_001",
      "email": "user@example.com",
      "name": "User Name",
      "surname": "Surname"
    }
  ]
}

Configuration Template Instance

Field Type Required Description
id String auto-gen Unique identifier for the configuration template instance.
resourceId String Yes Identifier of the resource associated with the instance.
configurationTemplateId String Yes Identifier of the configuration template used.
payload String Yes The configuration data or settings in JSON format.

Example

{
  "id": "resource_interop_001",
  "resourceId": "resource_001",
  "catalogueId": "catalogue_001",
  "interoperabilityRecordIds": [
    "interop_001",
    "interop_002"
  ]
}

Datasource

Field Type Required Description
id String auto-gen Unique identifier for the datasource.
serviceId String Yes Identifier of the associated service.
catalogueId String Yes Identifier of the associated catalogue.
submissionPolicyURL URL No URL of the submission policy.
preservationPolicyURL URL No URL of the preservation policy.
versionControl Boolean No Indicates if version control is used.
persistentIdentitySystems List<PersistentIdentitySystem> No List of persistent identity systems associated with the datasource.
jurisdiction String Yes Jurisdiction where the datasource operates.
datasourceClassification String Yes Classification of the datasource.
researchEntityTypes List<String> No List of research entity types related to the datasource.
thematic Boolean Yes Indicates if the datasource is thematic.
researchProductLicensings List<ResearchProductLicensing> No List of research product licensing details.
researchProductAccessPolicies List<String> No List of research product access policies.
researchProductMetadataLicensing ResearchProductMetadataLicensing No Metadata licensing details for research products.
researchProductMetadataAccessPolicies List<String> No List of research product metadata access policies.
harvestable Boolean No Indicates if the datasource is harvestable.

Nested Objects

PersistentIdentitySystem
Field Type Required Description
persistentIdentityEntityType String Yes Type of the persistent identity entity.
persistentIdentityEntityTypeSchemes List<String> No Schemes for the persistent identity entity types.
ResearchProductLicensing
Field Type Required Description
researchProductLicenseName String Yes Name of the research product license.
researchProductLicenseURL URL Yes URL of the research product license.
ResearchProductMetadataLicensing
Field Type Required Description
researchProductMetadataLicenseName String Yes Name of the research product metadata license.
researchProductMetadataLicenseURL URL Yes URL of the research product metadata license.

Example

{
  "id": "datasource_001",
  "serviceId": "service_001",
  "catalogueId": "catalogue_001",
  "submissionPolicyURL": "https://example.com/submission-policy",
  "preservationPolicyURL": "https://example.com/preservation-policy",
  "versionControl": true,
  "persistentIdentitySystems": [
    {
      "persistentIdentityEntityType": "Type1",
      "persistentIdentityEntityTypeSchemes": ["Scheme1", "Scheme2"]
    }
  ],
  "jurisdiction": "Country X",
  "datasourceClassification": "Public",
  "researchEntityTypes": ["Type1", "Type2"],
  "thematic": true,
  "researchProductLicensings": [
    {
      "researchProductLicenseName": "License1",
      "researchProductLicenseURL": "https://example.com/license1"
    }
  ],
  "researchProductAccessPolicies": ["Policy1", "Policy2"],
  "researchProductMetadataLicensing": {
    "researchProductMetadataLicenseName": "Metadata License1",
    "researchProductMetadataLicenseURL": "https://example.com/metadata-license1"
  },
  "researchProductMetadataAccessPolicies": ["MetadataPolicy1", "MetadataPolicy2"],
  "harvestable": true
}

Helpdesk

Field Type Required Description
id String auto-gen Unique identifier for the helpdesk.
serviceId String Yes Identifier of the associated service.
services List<String> No List of services associated with the helpdesk.
helpdeskType String No Type of the helpdesk (e.g., technical support, customer support).
supportGroups List<String> No List of support groups related to the helpdesk.
organisation String No Organisation managing the helpdesk.
emails List<String> No List of email addresses for direct assignment of tickets, bypassing L1 support.
agents List<String> No List of agents working in the helpdesk.
signatures List<String> No List of signatures used by the helpdesk.
ticketPreservation Boolean No Indicates if ticket preservation is enabled.
webform Boolean No Indicates if a webform is used for ticket submission.

Example

{
  "id": "helpdesk_001",
  "serviceId": "service_001",
  "services": ["serviceA", "serviceB"],
  "helpdeskType": "Technical Support",
  "supportGroups": ["group1", "group2"],
  "organisation": "SupportOrg",
  "emails": ["support@example.com", "escalation@example.com"],
  "agents": ["agent1", "agent2"],
  "signatures": ["Best regards, Support Team", "Thank you for contacting support"],
  "ticketPreservation": true,
  "webform": false
}

Interoperability Record

Field Type Required Description
id String auto-gen Unique identifier for the interoperability record.
catalogueId String Yes Identifier of the catalogue containing this record.
providerId String Yes Identifier of the provider associated with the record.
identifierInfo IdentifierInfo Yes Information about the primary identifier of the record.
creators List<Creator> Yes List of creators involved in the creation of the resource.
title String Yes Title of the interoperability record.
publicationYear Integer Yes Year of publication for the record.
resourceTypesInfo List<ResourceTypeInfo> Yes List of resource types associated with the record.
created String No Timestamp indicating when the record was created.
updated String No Timestamp indicating the last update to the record.
relatedStandards List<RelatedStandard> No List of related standards connected to the interoperability record.
rights List<Right> Yes List of rights associated with the record.
description String Yes Description of the interoperability record.
status String Yes Current status of the interoperability record.
domain String No Domain to which the record pertains.
eoscGuidelineType String Yes Type of EOSC (European Open Science Cloud) guideline associated with the record.
eoscIntegrationOptions List<String> No Options for integrating the record into EOSC.
alternativeIdentifiers List<AlternativeIdentifier> No Alternative identifiers for the record.

Nested Objects

IdentifierInfo
Field Type Required Description
identifier String Yes Main identifier for the interoperability record.
identifierType String Yes Type of the identifier, e.g., DOI, Handle.
Creator
Field Type Required Description
creatorNameTypeInfo CreatorNameTypeInfo Yes Information about the creator’s name and type.
givenName String No Given name of the creator.
familyName String No Family name of the creator.
nameIdentifier String No Unique identifier for the creator, e.g., ORCID.
creatorAffiliationInfo CreatorAffiliationInfo No Affiliation details of the creator.
CreatorNameTypeInfo
Field Type Required Description
creatorName String Yes Full name of the creator.
nameType String Yes Type of name, e.g., personal, organizational.
CreatorAffiliationInfo
Field Type Description
affiliation String Name of the affiliation of the creator.
affiliationIdentifier String Identifier for the affiliation, if any.
ResourceTypeInfo
Field Type Required Description
resourceType String Yes Specific type of the resource, e.g., dataset, tool.
resourceTypeGeneral String Yes General category of the resource type.
RelatedStandard
Field Type Description
relatedStandardIdentifier String Identifier for the related standard.
relatedStandardURI URL URI linking to the related standard.
Field Type Required Description
rightTitle String Yes Title of the right associated with the record.
rightURI URL Yes URI linking to the right.
rightIdentifier String Yes Identifier for the right.
AlternativeIdentifier
Field Type Description
type String Type of alternative identifier, e.g., DOI, ISBN.
value String Value of the alternative identifier.

Example

{
  "id": "interop_001",
  "catalogueId": "catalogue_001",
  "providerId": "provider_001",
  "identifierInfo": {
    "identifier": "10.1234/interop",
    "identifierType": "DOI"
  },
  "creators": [
    {
      "creatorNameTypeInfo": {
        "creatorName": "John Smith",
        "nameType": "Personal"
      },
      "givenName": "John",
      "familyName": "Smith",
      "nameIdentifier": "0000-0002-1825-0097",
      "creatorAffiliationInfo": {
        "affiliation": "University of Example",
        "affiliationIdentifier": "org_001"
      }
    }
  ],
  "title": "Interoperability Record Example",
  "publicationYear": 2024,
  "resourceTypesInfo": [
    {
      "resourceType": "Dataset",
      "resourceTypeGeneral": "Data"
    }
  ],
  "created": "2024-01-01T12:00:00Z",
  "updated": "2024-09-01T12:00:00Z",
  "relatedStandards": [
    {
      "relatedStandardIdentifier": "standard_001",
      "relatedStandardURI": "https://example.com/standard"
    }
  ],
  "rights": [
    {
      "rightTitle": "Open Access",
      "rightURI": "https://example.com/right",
      "rightIdentifier": "right_001"
    }
  ],
  "description": "This is a sample interoperability record description.",
  "status": "Active",
  "domain": "Data Science",
  "eoscGuidelineType": "EOSC Interoperability",
  "eoscIntegrationOptions": ["Integration A", "Integration B"],
  "alternativeIdentifiers": [
    {
      "type": "Handle",
      "value": "hdl:20.500.12345"
    }
  ]
}

Monitoring

Field Type Required Description
id String auto-gen Unique identifier for the monitoring record.
serviceId String Yes Identifier of the associated service.
monitoredBy String No Entity or system that is performing the monitoring.
monitoringGroups List<MonitoringGroup> Yes List of monitoring groups related to the monitoring.

Nested Objects

MonitoringGroup
Field Type Required Description
serviceType String Yes Type of service being monitored.
endpoint String Yes Endpoint URL for monitoring.
metrics List<Metric> Yes List of metrics being monitored.
Metric
Field Type Required Description
probe URL Yes URL for the probe used in monitoring.
metric URL Yes URL for the metric being measured.

Example

{
  "id": "monitoring123",
  "serviceId": "service456",
  "monitoredBy": "MonitoringServiceX",
  "monitoringGroups": [
    {
      "serviceType": "API",
      "endpoint": "https://api.example.com/status",
      "metrics": [
        {
          "probe": "https://metrics.example.com/probe1",
          "metric": "https://metrics.example.com/metric1"
        },
        {
          "probe": "https://metrics.example.com/probe2",
          "metric": "https://metrics.example.com/metric2"
        }
      ]
    },
    {
      "serviceType": "Database",
      "endpoint": "https://db.example.com/status",
      "metrics": [
        {
          "probe": "https://metrics.example.com/dbProbe1",
          "metric": "https://metrics.example.com/dbMetric1"
        }
      ]
    }
  ]
}

Provider

Field Type Required Description
id String auto-gen Unique identifier for the provider.
abbreviation String Yes Abbreviation of the provider’s name.
name String Yes Full name of the provider.
website URL Yes URL of the provider’s website.
legalEntity boolean Yes Indicates if the provider is a legal entity.
legalStatus String No Legal status of the provider.
hostingLegalEntity String No Hosting legal entity responsible for the provider.
alternativeIdentifiers List<AlternativeIdentifier> No List of alternative identifiers for the provider.
description String Yes Description of the provider.
logo URL Yes URL of the provider’s logo.
multimedia List<MultimediaPair> No List of multimedia items associated with the provider.
scientificDomains List<ServiceProviderDomain> No Scientific domains related to the provider’s services.
tags List<String> No Tags associated with the provider.
structureTypes List<String> No Types of structures associated with the provider.
location ProviderLocation Yes Physical location details of the provider.
mainContact ProviderMainContact Yes Main contact information for the provider.
publicContacts List<ProviderPublicContact> Yes List of public contacts for the provider.
lifeCycleStatus String No Current lifecycle status of the provider.
certifications List<String> No List of certifications held by the provider.
participatingCountries List<String> No List of countries participating in the provider’s services.
affiliations List<String> No List of affiliations related to the provider.
networks List<String> No Networks associated with the provider.
catalogueId String No Identifier of the catalogue the provider belongs to.
esfriDomains List<String> No ESFRI (European Strategy Forum on Research Infrastructures) domains associated with the provider.
esfriType String No ESFRI type classification of the provider.
merilScientificDomains List<ProviderMerilDomain> No MERIL scientific domains associated with the provider.
areasOfActivity List<String> No Areas of activity related to the provider’s services.
societalGrandChallenges List<String> No Societal grand challenges addressed by the provider.
nationalRoadmaps List<String> No National roadmaps associated with the provider.
users List<User> Yes List of users associated with the provider.

Nested Objects

AlternativeIdentifier
Field Type Required Description
type String No Type of the alternative identifier.
value String No Value of the alternative identifier.
MultimediaPair
Field Type Required Description
multimediaURL URL Yes URL to the multimedia resource.
multimediaName String No Name of the multimedia resource.
ServiceProviderDomain
Field Type Required Description
scientificDomain String Yes Scientific domain related to the catalogue.
scientificSubdomain String No Scientific subdomain related to the catalogue.
ProviderLocation
Field Type Required Description
streetNameAndNumber String Yes Street address of the catalogue’s location.
postalCode String Yes Postal code of the catalogue’s location.
city String Yes City where the catalogue is located.
region String No Region or state where the catalogue is located.
country String Yes Country where the catalogue is located.
ProviderMainContact
Field Type Required Description
firstName String Yes First name of the main contact person.
lastName String No Last name of the main contact person.
email String Yes Email address of the main contact person.
phone String No Phone number of the main contact person.
position String No Position of the main contact person.
organisation String No Organisation of the main contact person.
ProviderPublicContact
Field Type Required Description
firstName String No First name of the public contact person.
lastName String No Last name of the public contact person.
email String Yes Email address of the public contact person.
phone String No Phone number of the public contact person.
position String No Position of the public contact person.
organisation String No Organisation of the public contact person.
ProviderMerilDomain
Field Type Required Description
merilScientificDomain String Yes MERIL scientific domain related to the provider.
merilScientificSubdomain String No MERIL scientific subdomain related to the provider.

Example

{
  "id": "provider_001",
  "abbreviation": "PROV",
  "name": "Sample Provider",
  "website": "https://example.com",
  "legalEntity": true,
  "legalStatus": "Non-profit",
  "hostingLegalEntity": "Hosting Entity",
  "alternativeIdentifiers": [
    {
      "type": "Other ID Type",
      "value": "123-abc"
    }
  ],
  "description": "This is a sample provider description.",
  "logo": "https://example.com/logo.png",
  "multimedia": [
    {
      "multimediaURL": "https://example.com/media",
      "multimediaName": "Sample Multimedia"
    }
  ],
  "scientificDomains": [
    {
      "scientificDomain": "Science",
      "scientificSubdomain": "Physics"
    }
  ],
  "tags": ["science", "research"],
  "structureTypes": ["type1", "type2"],
  "location": {
    "streetNameAndNumber": "123 Main St",
    "postalCode": "12345",
    "city": "Sample City",
    "region": "Sample Region",
    "country": "Sample Country"
  },
  "mainContact": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "phone": "+123456789",
    "position": "Manager"
  },
  "publicContacts": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com",
      "phone": "+987654321",
      "position": "Support"
    }
  ],
  "lifeCycleStatus": "Active",
  "certifications": ["ISO9001", "ISO27001"],
  "participatingCountries": ["Country1", "Country2"],
  "affiliations": ["Affiliation1", "Affiliation2"],
  "networks": ["Network1", "Network2"],
  "catalogueId": "catalogue_001",
  "esfriDomains": ["Domain1", "Domain2"],
  "esfriType": "Type1",
  "merilScientificDomains": [
    {
      "merilScientificDomain": "MERIL Domain",
      "merilScientificSubdomain": "Subdomain"
    }
  ],
  "areasOfActivity": ["Activity1", "Activity2"],
  "societalGrandChallenges": ["Challenge1", "Challenge2"],
  "nationalRoadmaps": ["Roadmap1", "Roadmap2"],
  "users": [
    {
      "id": "user_001",
      "email": "user@example.com",
      "name": "User Name",
      "surname": "Surname"
    }
  ]
}

Resource Interoperability Record

Field Type Required Description
id String auto-gen Unique identifier for the resource interoperability record.
resourceId String Yes Identifier of the resource associated with the record.
catalogueId String Yes Identifier of the catalogue where the record is stored.
interoperabilityRecordIds List<String> Yes List of interoperability record IDs related to the resource.

Example

{
  "id": "resource_interop_001",
  "resourceId": "resource_001",
  "catalogueId": "catalogue_001",
  "interoperabilityRecordIds": [
    "interop_001",
    "interop_002"
  ]
}

Service

Field Type Required Description
id String auto-gen Unique identifier for the service.
abbreviation String Yes Abbreviation of the service’s name.
name String Yes Full name of the service.
resourceOrganisation String Yes Name of the resource organization providing the service.
resourceProviders List<String> No List of resource providers associated with the service.
webpage URL Yes URL of the service’s webpage.
alternativeIdentifiers List<AlternativeIdentifier> No List of alternative identifiers for the service.
description String Yes Detailed description of the service.
tagline String Yes Short tagline summarizing the service.
logo URL Yes URL of the service’s logo.
multimedia List<MultimediaPair> No List of multimedia items related to the service.
useCases List<UseCasesPair> No List of use cases demonstrating the service in action.
scientificDomains List<ServiceProviderDomain> Yes List of scientific domains related to the service.
categories List<ServiceCategory> Yes Categories and subcategories of the service.
targetUsers List<String> Yes List of target users for the service.
accessTypes List<String> No Types of access provided by the service (e.g., open, restricted).
accessModes List<String> No Modes of access available for the service (e.g., online, in-person).
tags List<String> No Tags associated with the service.
horizontalService Boolean No Indicates if the service is a horizontal service.
serviceCategories List<String> No List of service categories associated with the service.
marketplaceLocations List<String> No List of marketplace locations where the service is available.
geographicalAvailabilities List<String> Yes List of geographical availabilities of the service.
languageAvailabilities List<String> Yes List of language availabilities of the service.
resourceGeographicLocations List<String> No List of locations where the service resources are geographically located.
mainContact ServiceMainContact Yes Main contact information for the service.
publicContacts List<ServicePublicContact> Yes List of public contacts for the service.
helpdeskEmail String Yes Email address for the service’s helpdesk.
securityContactEmail String Yes Email address for security contact.
trl String Yes Technology Readiness Level of the service.
lifeCycleStatus String No Life cycle status of the service.
certifications List<String> No List of certifications related to the service.
standards List<String> No Standards that the service complies with.
openSourceTechnologies List<String> No List of open-source technologies used in the service.
version String No Current version of the service.
lastUpdate Date No Date and time of the last update.
changeLog List<String> No List of changes made to the service.
requiredResources List<String> No List of required resources for the service.
relatedResources List<String> No List of related resources linked to the service.
relatedPlatforms List<String> No List of related platforms connected to the service.
catalogueId String No Identifier of the associated catalogue.
fundingBody List<String> No List of funding bodies supporting the service.
fundingPrograms List<String> No List of funding programs related to the service.
grantProjectNames List<String> No List of grant project names associated with the service.
helpdeskPage URL No URL of the helpdesk page.
userManual URL No URL of the user manual.
termsOfUse URL Yes URL of the terms of use.
privacyPolicy URL Yes URL of the privacy policy.
accessPolicy URL No URL of the access policy.
resourceLevel URL No URL of the resource level details.
trainingInformation URL No URL of the training information.
statusMonitoring URL No URL for status monitoring information.
maintenance URL No URL of the maintenance details.
orderType String Yes Type of order required for the service.
order URL No URL for ordering the service.
paymentModel URL No URL of the payment model information.
pricing URL No URL of the pricing details.

Nested Objects

AlternativeIdentifier
Field Type Required Description
type String No Type of the alternative identifier.
value String No Value of the alternative identifier.
MultimediaPair
Field Type Required Description
multimediaURL URL Yes URL to the multimedia resource.
multimediaName String No Name of the multimedia resource.
UseCasesPair
Field Type Required Description
useCaseURL URL Yes URL to the use case resource.
useCaseName String No Name of the use case resource.
ServiceProviderDomain
Field Type Required Description
scientificDomain String Yes Main scientific domain.
scientificSubdomain String Yes Specific scientific subdomain.
ServiceCategory
Field Type Required Description
category String Yes Category of the service.
subcategory String No Subcategory of the service.
ServiceMainContact
Field Type Required Description
firstName String Yes First name of the main contact.
lastName String Yes Last name of the main contact.
email String Yes Email address of the main contact.
phone String No Phone number of the main contact.
position String No Position of the main contact.
organisation String No Organization of the main contact.
ServicePublicContact
Field Type Required Description
firstName String No First name of the public contact.
lastName String No Last name of the public contact.
email String Yes Email address of the public contact.
phone String No Phone number of the public contact.
position String No Position of the public contact.
organisation String No Organization of the public contact.

Example

{
  "id": "service_001",
  "abbreviation": "SERV",
  "name": "Sample Service",
  "resourceOrganisation": "Sample Organisation",
  "resourceProviders": ["Provider1", "Provider2"],
  "webpage": "https://example.com",
  "alternativeIdentifiers": [
    {
      "type": "Other ID Type",
      "value": "abc-123"
    }
  ],
  "description": "This is a sample service description.",
  "tagline": "Providing high-quality services.",
  "logo": "https://example.com/logo.png",
  "multimedia": [
    {
      "multimediaURL": "https://example.com/media",
      "multimediaName": "Sample Multimedia"
    }
  ],
  "useCases": [
    {
      "useCaseURL": "https://example.com/use-case",
      "useCaseName": "Sample Use Case"
    }
  ],
  "scientificDomains": [
    {
      "scientificDomain": "Biology",
      "scientificSubdomain": "Molecular Biology"
    }
  ],
  "categories": [
    {
      "category": "Category1",
      "subcategory": "Subcategory1"
    }
  ],
  "targetUsers": ["Researchers", "Students"],
  "accessTypes": ["Open", "Restricted"],
  "accessModes": ["Online", "In-person"],
  "tags": ["innovation", "technology"],
  "horizontalService": true,
  "serviceCategories": ["CategoryA", "CategoryB"],
  "marketplaceLocations": ["Location1", "Location2"],
  "geographicalAvailabilities": ["Global"],
  "languageAvailabilities": ["English", "French"],
  "resourceGeographicLocations": ["Location A", "Location B"],
  "mainContact": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "contact@example.com",
    "phone": "123-456-7890",
    "position": "Manager",
    "organisation": "Sample Org"
  },
  "publicContacts": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com",
      "phone": "098-765-4321",
      "position": "Support",
      "organisation": "Sample Org"
    }
  ],
  "helpdeskEmail": "helpdesk@example.com",
  "securityContactEmail": "security@example.com",
  "trl": "TRL 7",
  "lifeCycleStatus": "Active",
  "certifications": ["Certification1", "Certification2"],
  "standards": ["Standard1", "Standard2"],
  "openSourceTechnologies": ["Technology1", "Technology2"],
  "version": "1.0.0",
  "lastUpdate": "2024-09-09T12:00:00Z",
  "changeLog": ["Initial release.", "Minor updates."],
  "requiredResources": ["Resource1", "Resource2"],
  "relatedResources": ["RelatedResource1", "RelatedResource2"],
  "relatedPlatforms": ["Platform1", "Platform2"],
  "catalogueId": "catalogue_001",
  "fundingBody": ["Funding Body1", "Funding Body2"],
  "fundingPrograms": ["Program1", "Program2"],
  "grantProjectNames": ["Project1", "Project2"],
  "helpdeskPage": "https://example.com/helpdesk",
  "userManual": "https://example.com/user-manual",
  "termsOfUse": "https://example.com/terms",
  "privacyPolicy": "https://example.com/privacy",
  "accessPolicy": "https://example.com/access-policy",
  "resourceLevel": "https://example.com/resource-level",
  "trainingInformation": "https://example.com/training",
  "statusMonitoring": "https://example.com/status-monitoring",
  "maintenance": "https://example.com/maintenance",
  "orderType": "Online",
  "order": "https://example.com/order",
  "paymentModel": "https://example.com/payment-model",
  "pricing": "https://example.com/pricing"
}

Training Resource

Field Type Required Description
id String auto-gen Unique identifier for the training resource.
title String Yes Title of the training resource.
resourceOrganisation String Yes Organisation providing the resource.
resourceProviders List<String> No List of resource providers associated with the training resource.
authors List<String> Yes List of authors who contributed to the training resource.
url URL Yes URL linking to the training resource.
urlType String No Type of URL, e.g., landing page, direct link, etc.
eoscRelatedServices List<String> No List of related services in the European Open Science Cloud (EOSC).
alternativeIdentifiers List<AlternativeIdentifier> No List of alternative identifiers for the training resource.
description String No Description of the training resource.
keywords List<String> No Keywords associated with the training resource.
license String Yes License under which the training resource is distributed.
accessRights String Yes Access rights for the training resource, e.g., open, restricted, etc.
versionDate Date Yes Date and time when the version was published.
targetGroups List<String> Yes List of target groups intended for the training resource.
learningResourceTypes List<String> No Types of learning resources, e.g., video, article, tutorial.
learningOutcomes List<String> Yes List of learning outcomes expected from the training resource.
expertiseLevel String Yes Expertise level required for the training resource, e.g., beginner, intermediate.
contentResourceTypes List<String> No Types of content included in the training resource, e.g., text, multimedia.
qualifications List<String> No List of qualifications or certifications associated with the resource.
duration String No Duration of the training resource, e.g., “2 hours”.
languages List<String> Yes Languages in which the training resource is available.
geographicalAvailabilities List<String> Yes List of geographical locations where the resource is available.
scientificDomains List<ServiceProviderDomain> Yes List of scientific domains and subdomains relevant to the training resource.
contact ServiceMainContact Yes Contact details for the main contact person for the training resource.
catalogueId String No Catalogue identifier for the training resource.

Nested Objects

AlternativeIdentifier
Field Type Required Description
type String No Type of the alternative identifier.
value String No Value of the alternative identifier.
ServiceProviderDomain
Field Type Required Description
scientificDomain String Yes Main scientific domain.
scientificSubdomain String Yes Specific scientific subdomain.
ServiceMainContact
Field Type Required Description
firstName String Yes First name of the main contact.
lastName String Yes Last name of the main contact.
email String Yes Email address of the main contact.
phone String No Phone number of the main contact.
position String No Position of the main contact.
organisation String No Organization of the main contact.

Example

{
  "id": "training_001",
  "title": "Introduction to Data Science",
  "resourceOrganisation": "Data Science Institute",
  "resourceProviders": ["Provider A", "Provider B"],
  "authors": ["Author One", "Author Two"],
  "url": "https://example.com/training-resource",
  "urlType": "landingPage",
  "eoscRelatedServices": ["Service A", "Service B"],
  "alternativeIdentifiers": [
    {
      "type": "DOI",
      "value": "10.1234/training"
    }
  ],
  "description": "An introductory course on data science concepts.",
  "keywords": ["Data Science", "Machine Learning"],
  "license": "Creative Commons Attribution 4.0",
  "accessRights": "Open Access",
  "versionDate": "2024-09-10T00:00:00Z",
  "targetGroups": ["Researchers", "Students"],
  "learningResourceTypes": ["Course", "Tutorial"],
  "learningOutcomes": ["Understand basics of data science", "Apply machine learning models"],
  "expertiseLevel": "Beginner",
  "contentResourceTypes": ["Video", "PDF"],
  "qualifications": ["Certificate of Completion"],
  "duration": "3 hours",
  "languages": ["English", "Spanish"],
  "geographicalAvailabilities": ["Europe", "Global"],
  "scientificDomains": [
    {
      "scientificDomain": "Computer Science",
      "scientificSubdomain": "Machine Learning"
    }
  ],
  "contact": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "phone": "+123456789",
    "position": "Course Coordinator",
    "organisation": "Data Science Institute"
  },
  "catalogueId": "catalogue_001"
}

Vocabulary

Field Type Required Description
id String auto-gen A unique identifier for the vocabulary.
name String Yes The name of the vocabulary.
description String No A brief description of the vocabulary.
parentId String No The identifier of the parent vocabulary, if applicable.
type String Yes Specifies the type/category of the vocabulary.
extras Map<String, String> No A map for storing additional key-value pairs.

Example

{
    "id": "access_mode-free",
    "name": "Free",
    "description": "Users can freely access the Resource provided, registration may be needed.",
    "parentId": null,
    "type": "Access mode",
    "extras": {}
}

List of Vocabularies


Data Validation

This project provides LinkML schemas for validating your data. Users can validate their data files (e.g., YAML, JSON) against these schemas to ensure compliance with the defined structure, data types, and constraints. Simply provide your data and use LinkML’s built-in tools or Python libraries to run the validation process. Errors or mismatches will be reported to help you identify and fix issues.

Quick Guide (Linux based systems):

To validate your data against the provided LinkML schemas:

  1. Install LinkML pip install linkml
  2. Download schemas folder
  3. Create a folder for your data mkdir path/to/data
  4. Run the validation command linkml-validate -s path/to/schemas/schema.yaml path/to/data/data.yaml