# D4.3 - Specification of shared metadata description of semantic artefacts and their catalogues including common reference API

Antony Wilson, Clement Jonquet

<figure><img src="image_1.png" /></figure>

## To cite this version:

Antony Wilson, Clement Jonquet. D4.3 - Specification of shared metadata description of semantic artefacts and their catalogues including common reference API. D4.3, FAIR-IMPACT. 2024. hal-04678453

HAL Id: hal-04678453

https://hal.science/hal-04678453v1

Submitted on 27 Aug 2024

HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Project Title Expanding FAIR solutions across EOSC

Project Acronym FAIR-IMPACT

Grant Agreement No. 101057344

Start Date of Project 2022-06-01

Duration of Project 36 months

Project Website www.fair-impact.eu

## D4.3 - Specification of shared metadata description of semantic artefacts and their catalogues including common reference API

<table><tr><td>Work Package</td><td>WP 4, Metadata and Ontologies</td></tr><tr><td>Lead Author (Org)</td><td>Antony Wilson<fnref n="1" /> (UKRI-STFC), Clement Jonquet<fnref n="2" /> (INRAE)</td></tr><tr><td>Contributing Author(s) (Org)</td><td>Alejandra Gonzalez-Beltran<fnref n="3" /> (UKRI-STFC), Daniel Garijo<fnref n="4" /> (UPM)</td></tr><tr><td>Due Date</td><td>2027-07-31</td></tr><tr><td>Date</td><td>2024-07-01</td></tr><tr><td>Version</td><td>V1.0 - DRAFT NOT YET APPROVED BY THE EUROPEAN COMMISSION</td></tr><tr><td>DOI</td><td>https://doi.org/10.5281/zenodo.12579778</td></tr></table>

### Dissemination Level

<figure><img src="image_3.png" /></figure>

PU: Public

PP: Restricted to other programme participants (including the Commission)

RE: Restricted to a group specified by the consortium (including the Commission)

CO: Confidential, only for members of the consortium (including the Commission)

<footnote n="1">¹ https://orcid.org/0000-0001-7336-4823</footnote>

<footnote n="2">² https://orcid.org/0000-0002-2404-1582</footnote>

<footnote n="3">³ https://orcid.org/0000-0003-3499-8262</footnote>

<footnote n="4">⁴ http://orcid.org/0000-0003-0454-7145</footnote>
Versioning and contribution history

<table><thead><tr><td>Version</td><td>Date</td><td>Author</td><td>Notes</td></tr></thead><tbody><tr><td>0.1</td><td>2024.06.12</td><td>Antony Wilson (UKRI-STFC)</td><td>TOC and first version of content.</td></tr><tr><td>0.2</td><td>2024.06.21</td><td>Antony Wilson (UKRI-STFC)</td><td>New TOC and addition of the first figure presenting the API.</td></tr><tr><td>0.3</td><td>2024.06.22</td><td>Antony Wilson (UKRI-STFC)</td><td>Removed section 7.</td></tr><tr><td>0.4</td><td>2024.06.24</td><td>Antony Wilson (UKRI-STFC), Clement Jonquet (INRAE)</td><td>Addition of work related to MOD3.1</td></tr><tr><td>0.5</td><td>2024.06.25</td><td>Antony Wilson (UKRI-STFC)</td><td>Addition of figure with MOD 3.1</td></tr><tr><td>0.6</td><td>2024.06.26</td><td>Antony Wilson (UKRI-STFC), Clement Jonquet (INRAE)</td><td>Addition of new figure for MOD 3.2. Removing of the section on MOD mapping to avoid replication of M4.3.</td></tr><tr><td>0.7</td><td>2024.06.27</td><td>Antony Wilson (UKRI-STFC)</td><td>Modified API based on recent T4.2 meeting outcomes.</td></tr><tr><td>0.8</td><td>2024.06.27</td><td>Clement Jonquet (INRAE)</td><td>Wrote Executive Summary for this deliverable in complement of M4.3.</td></tr><tr><td>0.9</td><td>2024.06.29</td><td>Clement Jonquet (INRAE)</td><td>Remove sections duplicate of M4.2 (profiles and historical perspective of FAIR semantic artefact and MOD), readapted the text overall. Described MOD 3.1 and 3.2.</td></tr><tr><td>0.10</td><td>2024.07.04</td><td>Antony Wilson (UKRI-STFC)</td><td>Sent for internal review: OScar Corcho (UMP) and Lassi Lager (CSC). Comments and contributions from Syphax Bouazzouni (INRAE).</td></tr><tr><td>1.0</td><td>2024.07.30</td><td>Antony Wilson (UKRI-STFC), Clement Jonquet (INRAE)</td><td>Addressing reviewers comments. Adding more description about the endpoints. Adding appendices.</td></tr></tbody></table>

Disclaimer

FAIR-IMPACT has received funding from the European Commission's Horizon Europe funding programme for research and innovation programme under the Grant Agreement no. 101057344. The content of this document does not represent the opinion of the European Commission, and the European Commission is not responsible for any use that might be made of such content.

<figure><img src="image_4.png" /></figure>
# Table of Contents

<table><tr><td><strong>1. Description of the Deliverable</strong></td><td><strong>6</strong></td></tr><tr><td>1.1 Role of the Deliverable</td><td>6</td></tr><tr><td>1.2 Means of Verification</td><td>7</td></tr><tr><td><strong>2. The Metadata for Ontology Description and Publication (MOD) Ontology</strong></td><td><strong>7</strong></td></tr><tr><td>2.1 MOD Previous Work</td><td>7</td></tr><tr><td>2.2 MOD</td><td>7</td></tr><tr><td>2.2.1 Version 3.0</td><td>7</td></tr><tr><td>2.2.2 Version 3.1 and 3.2</td><td>8</td></tr><tr><td><strong>3. The MOD API</strong></td><td><strong>10</strong></td></tr><tr><td>3.1 Introduction</td><td>10</td></tr><tr><td>3.2 The Endpoints</td><td>13</td></tr><tr><td>3.2.1 The Artefact Endpoints</td><td>13</td></tr><tr><td>3.2.2 The Catalogue Endpoint</td><td>14</td></tr><tr><td>3.2.3 The Record Endpoints</td><td>14</td></tr><tr><td>3.2.4 The Search Endpoints</td><td>15</td></tr><tr><td><strong>4. Conclusions and next steps</strong></td><td><strong>16</strong></td></tr><tr><td><strong>References</strong></td><td><strong>17</strong></td></tr><tr><td><strong>Appendices</strong></td><td><strong>18</strong></td></tr><tr><td>Diagram 4. JSON-LD Example of a SemanticArtefact</td><td>18</td></tr><tr><td>Diagram 5. TTL Example of a SemanticArtefact</td><td>27</td></tr><tr><td>Diagram 6. RDF/XML Example of a SemanticArtefact</td><td>31</td></tr></table>

## List of Diagrams

<table><tr><td>Diagram 1. The MOD (version 3.2) vocabulary with complete listing of the properties.</td><td>9</td></tr><tr><td>Diagram 2. MOD API Documentation screenshot</td><td>11</td></tr><tr><td>Diagram 3. An Example of the Information Provided for an Endpoint</td><td>12</td></tr><tr><td>Diagram 4. JSON-LD Example of a SemanticArtefact</td><td>18</td></tr><tr><td>Diagram 5. TTL Example of a SemanticArtefact</td><td>27</td></tr><tr><td>Diagram 6. RDF/XML Example of a SemanticArtefact</td><td>31</td></tr></table>

<figure><img src="image_5.png" /></figure>
TERMINOLOGY

<table><thead><tr><td>Terminology/Acronym</td><td>Description</td></tr></thead><tbody><tr><td>API</td><td>Application Programming Interface</td></tr><tr><td>DCAT</td><td>Data Catalogue Vocabulary</td></tr><tr><td>EOSC</td><td>European Open Science Cloud</td></tr><tr><td>FAIR</td><td>Findable Accessible Interoperable and Reusable</td></tr><tr><td>RDA</td><td>Research Data Alliance</td></tr><tr><td>RDF</td><td>Resource Description Framework</td></tr><tr><td>LOT</td><td>Linked Open Terms</td></tr><tr><td>MOD</td><td>Metadata for Ontology Description and Publication</td></tr><tr><td>OWL</td><td>Web Ontology Language</td></tr><tr><td>SA</td><td>Semantic Artefact</td></tr><tr><td>SKOS</td><td>Simple Knowledge Organization System</td></tr><tr><td>SSSOM</td><td>Simple Standard for Sharing Ontology Mappings</td></tr><tr><td>TTL</td><td>Terse RDF Triple Language</td></tr><tr><td>VSSIG</td><td>Vocabulary and Semantic Services Interest Group</td></tr><tr><td>WP</td><td>Work Package</td></tr></tbody></table>

<figure><img src="image_6.png" /></figure>
Executive Summary

Semantic artefacts (SA) –a broad term to include ontologies, terminologies, taxonomies, thesauri, vocabularies, metadata schemas and semantic standards– are key for the description of data and for making data FAIR. Plus, describing SAs is fundamental to make them FAIR themselves. The Metadata for Ontology Description and Publication (MOD) ontology was developed since 2017 within the RDA VSSIG and adopted by FAIR-IMPACT to provide a reference vocabulary<fnref n="5" /> to semantically describe Semantic Artefacts. It was designed as an extension of the Data Catalogue Vocabulary (DCAT), the W3C Recommendation to describe datasets and resources that can be catalogued.

Within FAIR-IMPACT's WP4 on ontologies and metadata, T4.2 aims to establish guidelines and community practices with respect to the lifecycle of FAIR semantic artefacts from creation (T4.2.1) to sharing and reuse via catalogues or repositories (T4.2.2). With work on MOD, the task also standardised the mechanisms to describe and serve semantic artefacts (T4.2.3) within EOSC. The task has previously released the milestone M4.3 (Specification of semantic artefact description) that contained the latest specification of the MOD (version 3), updated mappings for MOD properties<fnref n="6" /> and added automatic profiles to check compliance with MOD.

This deliverable describes the latest changes of MOD, mostly done to encompass the description of Semantic Artefact Catalogues in addition to Semantic Artefacts (and their distributions). Then, the deliverable builds on the MOD vocabulary to provide the specification of an Application Programming Interface (API) for interoperability of Semantic Artefact Catalogues in the European Open Science Cloud (EOSC) ecosystem and beyond. This API is formalised by means of the OpenAPI specification and an OpenAPI template that shall guide for the implementation of a REST API. The objects returned by an implementation of the API shall all be standard semantic objects either from a W3C Recommendation (RDFS, OWL and SKOS) or MOD. We are expecting the MOD-API for Semantic Artefact Catalogues<fnref n="7" /> to enable interoperability and unified access to their content, enabling seamless querying and use by stakeholders independent of domain. The API will be adopted by FAIR-IMPACT T4.2's use case SA-catalogues (at least AgroPortal, EcoPortal, EarthPortal, and potentially LOV) and it is publicly available for other catalogues to implement. The implementation of this API will also be the topic of an upcoming FAIR-IMPACT Open Call for support.

<figure><img src="image_7.png" /></figure>

<footnote n="5">⁵ https://github.com/FAIR-IMPACT/MOD</footnote>

<footnote n="6">⁶ https://github.com/FAIR-IMPACT/MOD-mappings</footnote>

<footnote n="7">⁷ https://github.com/FAIR-IMPACT/MOD-API</footnote>
# 1. Description of the Deliverable

This deliverable presents a specification for Semantic Artefacts descriptions, relying on a new version of the Metadata for Ontology Description and Publication Ontology (MOD) (version 3.2). It emphasises the importance of Semantic Artefacts descriptions in the context of producing data that follows the FAIR Principles, and presents an historical perspective of the evolution of the MOD vocabulary, which has been originally developed [1] in a convergence approach considering three aspects: by exploring existing vocabularies that are useful to describe SAs, by analysing existing SAs descriptions, and by studying the description properties offered by SA-catalogues.

Milestone M4.3 presented the new architecture of MOD (version 3) as well as the overall context and history of this work.<fnref n="8" /> Reading the milestone is a prerequisite to understand the background of this deliverable. Here, we present MOD version 3.2, which was completed by the description of Semantic Artefact Catalogue.

The deliverable also includes the specification of an API for interacting with Semantic Artefacts and their catalogues.

There are other tasks and their milestones/deliverables within the FAIR-IMPACT project that are related to this work, as follows:

* M4.2 Processes and tools to engineer FAIR Semantic Artefacts [1];

* M4.3 Specification of semantic artefact description [2];

* M5.3 Semantic Artefact assessment methodology [3];

* M4.4 Review and analysis of Semantic Artefact Catalogues for serving FAIR semantic artefacts in EOSC [4];

* Upcoming D4.5 Guidelines and methodology to create, document and share mappings and crosswalks.

## 1.1 Role of the Deliverable

This deliverable has been driven by two objectives:

i) to describe the latest version of the MOD vocabulary including the description of semantic artefact catalogues;

ii) to describe a standard Application Programming Interface for semantic artefact catalogues.

<figure><img src="image_8.png" /></figure>

<footnote n="8">⁸ https://zenodo.org/doi/10.5281/zenodo.10725303</footnote>
## 1.2 Means of Verification

The required means of verification for this deliverable is the publication of this report together with the artefacts presented in the related GitHub repositories:

i) MOD repository: https://github.com/FAIR-IMPACT/MOD

ii) MOD API: https://github.com/FAIR-IMPACT/MOD-API

The deliverable goes along with releases of these products:

* https://github.com/FAIR-IMPACT/MOD-API/releases/tag/1.0.0

* https://github.com/FAIR-IMPACT/MOD/releases/tag/v3.2

# 2. The Metadata for Ontology Description and Publication (MOD) Ontology

## 2.1 MOD Previous Work

Check out the milestone M4.3 - Specification of semantic artefact description (https://zenodo.org/doi/10.5281/zenodo.10725303) for this.

## 2.2 MOD

### 2.2.1 Version 3.0

Version 3.0 of MOD was made available as part of milestone M4.3. This milestone includes detailed discussions about the design decisions for MOD 3.0. In the milestone, we described how the new version of MOD (version 3.0)<fnref n="9" /> was designed and implemented, by formalising MOD relationship with the DCAT vocabulary for resource catalogues and clearly distinguishing between the elements that are part of the MOD vocabulary definition and additional terms from other ontologies that were mapped to MOD, in order to facilitate:

i) the specification of a new version of the MOD vocabulary as an extension of the DCAT vocabulary by addressing outstanding design issues;

ii) a clear identification between MOD elements and mappings to other vocabularies, by representing the mappings using the SSSOM standard;

iii) present machine-actionable representations of MOD 3.0 profiles.

<figure><img src="image_9.png" /></figure>

<footnote n="9">⁹URI: https://w3id.org/mod/3.0 and release notes: https://github.com/FAIR-IMPACT/MOD/releases/tag/v3.0</footnote>
### 2.2.2 Version 3.1 and 3.2

Following on, MOD 3.0 has been updated to produce MOD 3.2.<fnref n="10" /> Some changes are that a number of additional properties have now been assigned to the *mod:SemanticArtefactDistribution* class, this includes some that have been moved from the *mod:SemanticArtefact*. More generally, we have added the mechanism to assign MOD properties to any classes in MOD. Then we have assigned some of the original MOD properties (up to version 3.0) to the *mod:SemanticArtefactCatalog* class when the property was relevant. New properties have also been added to describe *mod:SemanticArtefactCatalog* mostly from Schema.org, DCAT, DCTERMS and ODRL or created in the MOD namespace.

In this version, we have also updated the metadata description of MOD itself with MOD properties. Additionally, a new versioning file organisation has been implemented, and multiple small changes and fixes have been applied to versions 3.0, 3.1, and 3.2.

Diagram 1 shows the MOD 3.2 schema and its relationship to DCAT. For the interest of clarity the properties have been left out of the DCAT classes. We only focus on listing the properties for the *mod:SemanticArtefact*, *mod:SemanticArtefactDistribution*, *mod:SemanticArtefactCatalogRecord* and finally the *mod:SemanticArtefactCatalog* class too. Each of these classes will be objects returned by the MOD-API described after.

<figure><img src="image_10.png" /></figure>

Funded by
the European Union

<footnote n="10">¹⁰URI: https://w3id.org/mod/3.2 and release notes: https://github.com/FAIR-IMPACT/MOD/releases/tag/v3.2</footnote>
<figure><img src="image_11.png" /><figcaption>Diagram 1. The MOD (version 3.2) vocabulary with complete listing of the properties.</figcaption></figure>

<figure><img src="image_12.png" /></figure>
# 3. The MOD API

## 3.1 Introduction

In order for tools and applications to interact with semantic artefact catalogues in a uniform way, we have produced a specification of an Application Programming Interface. The main purpose of this API is to specify the calls that a SA-catalogue shall support to serve the content and metadata of SA. The objects returned by an implementation of the API shall all be standard semantic objects, represented in RDF, either from a W3C Recommendation (RDFS, OWL and SKOS) or MOD. This API is formalised by means of an OpenAPI template that shall guide the implementation of Web REST API. We are suggesting to serialise the semantic objects in JSON-LD.

This MOD API has been defined in an Open API YAML file,<fnref n="11" /> which has been used to generate the API documentation.<fnref n="12" /> The reader is directed to this documentation for the full description of the API. The documentation includes details of the input parameters, along with the schema for the responses; please select the media type of *application/ld+json* to view the schema of the returned object. For the moment, the specification contains the MOD properties that can be possibly included only for the JSON-LD format.

A main purpose of this API is to retrieve content and metadata description of SAs stored in catalogues, i.e. a SemanticArtefactCatalog object (information about a catalogue) or a SemanticArtefact (metadata about an ontology, taxonomy or vocabulary). A brief overview of the API is presented in this deliverable.

The API endpoints (see Diagram 2) are grouped into:

* Catalogue - Get information about the semantic artefact catalogue. The `/` endpoint.

* Artefact - Get information about semantic artefacts. Endpoints starting with `/artefacts`. Endpoints under this root can return content of the catalogue as well as metadata.

* Distribution - Get information about the semantic artefact distributions. Endpoints starting with `/distributions`

* Record - Get information about semantic artefact catalogue records. Endpoints starting with `/records`

<figure><img src="image_13.png" /></figure>

<footnote n="11">¹¹ https://github.com/FAIR-IMPACT/MOD-API/blob/main/mod_api/static/mod_api/openAPI ya ml</footnote>

<footnote n="12">¹² https://fair-impact.github.io/MOD-API/</footnote>
* **Search** - Search either the metadata of SA, their content or both. Endpoints starting with `/search` shall return any of the types of objects returned by the other endpoints depending on the results of the search query expressed with a string parameter (q).

<figure><img src="image_14.png" /><figcaption>Diagram 2. MOD API Documentation screenshot</figcaption></figure>

<figure><img src="image_15.png" /></figure>
The documentation provides information about each endpoint along with details about the schema, see Diagram 3.

<figure><img src="image_16.png" /><figcaption>Diagram 3. An Example of the Information Provided for an Endpoint</figcaption></figure>

<figure><img src="image_17.png" /></figure>
## 3.2 The Endpoints

The endpoints should all implement content negotiation. There are two ways to specify that content format. Firstly use of the *Accept* field in the request headers, secondly use of the *format* parameter in the URL. A request for *HTML* should return the information in a human readable format, whereas *JSON-LD*, *TTL* and *XML* should return the information in a machine readable format.

The endpoints that return a list of objects should implement pagination. This is done via the URL parameters *page* and *pagesize*.

The URL parameter *display* should be used to indicate which fields are returned in the response. If this parameter is not provided the default list shall be returned (the default list is implementation dependent). With the parameter *display=all*, all fields should be explicitly returned.

### 3.2.1 The Artefact Endpoints

The *artefacts* endpoint gets information about all of the Semantic Artefacts in the catalogue. These endpoints support the use cases where a client wants to do something on all the artefacts based on a common metadata (e.g., list all the artefacts by name and URIs).

All of the other artefact endpoints include an *artefactID* and return information specific to the selected artefact. These endpoints shall allow a user either to get all the information available about a specific SA and even get the other objects linked to that SA. Examples of SA response objects are given in Appendix 1, the user documentation contains additional examples. The artefact endpoints are:

* `/artefacts/{artefactID}` - returns a unique mod:SemanticArtefact object for the given artefact ID with an identifier system supported by the SA-catalogue (see Appendix 1 for example responses).

* `/artefacts/{artefactID}/distributions` - returns a list of mod:SemanticArtefactDistribution objects for the given artefact ID corresponding to all the distributions currently available in the catalogue for this artefact.

* `/artefacts/{artefactID}/distributions/{distributionID}` - returns a unique mod:SemanticArtefactDistribution object for the given artefact ID and distribution ID combination.

* `/artefacts/{artefactID}/distributions/latest` - returns the latest (in the sense of a local metadata (e.g., date of submission)) unique mod:SemanticArtefactDistribution object available in the SA-catalogue for the given artefact ID.

* `/artefacts/{artefactID}/record` - returns a mod:SemanticArtefactRecord object for the given artefact ID.

<figure><img src="image_18.png" /></figure>

Funded by
the European Union
* `/artefacts/{artefactID}/resources` - returns a list of resources (rdf:Resource) included in an artefact with a given artefact ID. Every object's content within a SA being of type rdf:Resource, this endpoint is therefore an iterator on the whole content of the SA. Specific types of resource can be obtained by prepending the resource type:

* `/artefacts/{artefactID}/resources/concepts` (skos:Concept)

* `/artefacts/{artefactID}/resources/classes` (owl:Class)

* `/artefacts/{artefactID}/resources/properties` (rdf:Property)

* `/artefacts/{artefactID}/resources/individuals` (owl:NamedIndividual)

* `/artefacts/{artefactID}/resources/schemes` (skos:Scheme)

* `/artefacts/{artefactID}/resources/collections` (skos:Collection)

### 3.2.2 The Catalogue Endpoint

There is only one catalogue endpoint and that is the root endpoint, `/`. It gets information about the catalogue in the form of a `mod:SemanticArtefactCatalog` object. This endpoint supports the use cases where a client wants to get a description of the catalogue itself.

### 3.2.3 The Record Endpoints

We suppose the distribution mechanism shall allow a catalogue to store and serve (data and/or metadata only) the content of multiple distributions. However, catalogues could also use the unique object SemanticArtefactCatalogRecord to store specific information the catalogue needs about a SA. The records endpoints return SemanticArtefactCatalogRecord objects.

* `/records` - returns all of the SemanticArtefactCatalogRecord objects

* `/records/{artefactID}` - returns a SemanticArtefactRecord object for the given artefact ID. This is equivalent to `/artefacts/{artefactID}/record`.

The `mod:SemanticArtefactCatalogRecord` is not specified by MOD (properties to use) to let every implementation decide on the ad-hoc characteristics to store at the level of the record. Hence, the records endpoint may be considered optional by implementations of the MOD-API.

<figure><img src="image_19.png" /></figure>
### 3.2.4 The Search Endpoints

It is possible to search just the metadata or the content of semantic artefacts or both of them. The data returned by the search endpoints is dependent on the search. For example, a search could yield a *mod:SemanticArtefact* object that contains metadata about a SA, or it could return a list of *skos:Concept* depending on where it finds matches. In compliance with the rest of this API, the search endpoints shall only returns objects that are: rdf:Resource, skos:Concept, owl:Class, rdf:Property, owl:NamedIndividual, skos:Scheme, skos:Collection or mod:SemanticArtefact, mod:semanticArtefactDistribution and possibly mod:SemanticArtefactCatalogRecord.

Implementers of catalogues are responsible for what fields are indexed. The choices of the indices will influence the ranking of search results. Hence this document does not specify the order of the results from searches.

* /search - search in the metadata and the content

* /search/content - just search the content

* /search/metadata - just search the metadata

<figure><img src="image_20.png" /></figure>
## 4. Conclusions and next steps

The milestone M4.3 was about a specification for describing semantic artefacts based on the MOD vocabulary. For this deliverable, we have refined the MOD specification, and produced an MOD-based Application Programming Interface for semantic artefact catalogues.

The main outcomes from this deliverable are:

i) specifications of a new version of the MOD vocabulary,

ii) an Application Programming Interface for semantic artefact catalogues.

Adoption of the MOD-API for Semantic Artefact Catalogues<fnref n="13" /> will facilitate interoperability and unified access to their content, enabling seamless querying and use by stakeholders independent of domain e.g. possibly federated search. It will also allow for easier development of federated search services.

The API will be adopted by FAIR-IMPACT T4.2's use case SA-catalogues, at least AgroPortal,<fnref n="14" /> EcoPortal,<fnref n="15" /> EarthPortal,<fnref n="16" /> while we will encourage others such as LOV<fnref n="17" /> to adopt it too, and it is publicly available for other catalogues to implement.

The implementation of this API will also be the topic of an upcoming FAIR-IMPACT Open Call.

<figure><img src="image_21.png" /></figure>

Funded by
the European Union

<footnote n="13">¹³ https://github.com/FAIR-IMPACT/MOD-API</footnote>

<footnote n="14">¹⁴ https://agroportal.lirmm.fr</footnote>

<footnote n="15">¹⁵ https://ecoportal.lifewatch.eu</footnote>

<footnote n="16">¹⁶ https://earthportal.eu</footnote>

<footnote n="17">¹⁷ https://lov.linkeddata.es/dataset/lov</footnote>
## References

[1] B. Dutta, A. Toulet, V. Emonet, and C. Jonquet, 'New Generation Metadata Vocabulary for Ontology Description and Publication', in *Metadata and Semantic Research*, vol. 755, E. Garoufallou, S. Virkus, R. Siatri, and D. Koutsomiha, Eds., Cham: Springer International Publishing, 2017, pp. 173–185. doi: 10.1007/978-3-319-70863-8_17.

[2] A. N. Gonzalez Beltran and A. Wilson, 'FAIR-IMPACT M4.3 - Specification of semantic artefact description', Zenodo, Feb. 2024. doi: 10.5281/zenodo.10725304.

[3] D. Garijo, M. Poveda-Villalón, P. Flohr, A. Gonzalez-Beltran, Y. le Franc, and M. Verburg, 'M5.3 Semantic artefact assessment methodology', Aug. 2023, doi: 10.5281/ZENODO.8305173.

[4] C. Jonquet, N. Grau, 'M4.4 - Review and analysis of Semantic Artefact Catalogues for serving FAIR semantic artefacts in EOSC', Zenodo, Jul 2024, doi: 10.5281/zenodo.12799796

<figure><img src="image_22.png" /></figure>
# Appendices

<caption>Diagram 4. JSON-LD Example of a Semantic Artefact</caption>

```json
{
    "@context": {
        "dc": "http://purl.org/dc/elements/1.1/",
        "dcat": "http://www.w3.org/ns/dcat#",
        "dct": "http://purl.org/dc/terms/",
        "dctype": "http://purl.org/dc/dcmitype/",
        "foaf": "http://xmlns.com/foaf/0.1/",
        "locn": "http://www.w3.org/ns/locn#",
        "mod": "https://w3id.org/mod#",
        "odrl": "http://www.w3.org/ns/odrl/2/",
        "owl": "http://www.w3.org/2002/07/owl#",
        "prov": "http://www.w3.org/ns/prov#",
        "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
        "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
        "skos": "http://www.w3.org/2004/02/skos/core#",
        "time": "http://www.w3.org/2006/time#",
        "vcard": "http://www.w3.org/2006/vcard/ns#",
        "xsd": "http://www.w3.org/2001/XMLSchema#"
    },
    "@id": "https://example.org/SemanticArtefact/SemanticArtefactID",
    "@type": [
        "mod:SemanticArtefact"
    ],
    "dct:accessRights": {
        "@id": "https://example.org/RightsStatement/RightsStatementID",
        "@type": "dct:RightsStatement"
    },
    "dct:conformsTo": {
        "@id": "https://example.org/Standard/StandardID",
        "@type": "dct:Standard"
    },
    "dcat:contactPoint": {
        "@id": "https://example.org/vcardKind/vcardKindID",
        "@type": "vcard:Kind",
        "vcard:fn": "Corky Crystal",
        "vcard:nickname": "Corks"
    },
    "dct:creator": {
        "@id": "https://example.org/Agent/AgentID",
        "@type": "foaf:Agent"
    },
    "dct description": {
        "@id": "https://example.org/identifier/identifierID",
        "@type": "dct:identifier"
    }
```

<figure><img src="image_23.png" /></figure>
},
"odrl:hasPolicy": {
    "@id": "https://example.org/Policy/PolicyID",
    "@type": "odrl:Policy"
},
"dct:identifier": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dct:isReferencedBy": {
    "@id": "https://example.org/isReferencedBy/isReferencedByID",
    "@type": "dct:isReferencedBy"
},
"dct:issued": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dcat:keyword": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dcat:landingPage": {
    "@id": "https://example.org/Document/DocumentID",
    "@type": "foaf:Document"
},
"dct:language": {
    "@id": "https://example.org/LinguisticSystem/LinguisticSystemID",
    "@type": "dct:LinguisticSystem"
},
"dct:license": {
    "@id": "https://example.org/LicenseDocument/LicenseDocumentID",
    "@type": "dct:LicenseDocument"
},
"dct:modified": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dct:publisher": {
    "@id": "https://example.org/Agent/AgentID",
    "@type": "foaf:Agent"
},
"prov:qualifiedAttribution": {
    "@id": "https://example.org/Attribution/AttributionID",
    "@type": "prov:Attribution"
},
"dcat:qualifiedRelation": "string",
"dct:relation": {
    "@id": "https://exa

<figure><img src="image_24.png" /></figure>

Funded by
the European Union
```json
"@type": "dct:relation"
},
"dct:rights": {
    "@id": "https://example.org/RightsStatement/RightsStatementID",
    "@type": "dct:RightsStatement"
},
"dcat:theme": {
    "@type": "skos:Concept",
    "skos:prefLabel": "cars"
},
"dct:title": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dct:type": {
    "@id": "https://example.org/Type/TypeID",
    "@type": "dt:type"
},
"mod:acronym": {
    "@type": "xsd:string",
    "@value": "Lorem ipsum"
},
"mod:analytics": {
    "@id": "https://example.org/Analytics/AnalyticsID",
    "@type": [
        "mod:Analytics"
    ]
},
"mod:competencyQuestion": {
    "@type": "xsd:string",
    "@value": "Lorem ipsum"
},
"mod:designedForTask": {
    "@id": "https://example.org/SemanticArtefactService/SemanticArtefactServiceID",
    "@type": [
        "mod:SemanticArtefactService"
    ],
    "dct:accessRights": {
        "@id": "https://example.org/RightsStatement/RightsStatementID",
        "@type": "dct:RightsStatement"
    },
    "dct:conformsTo": {
        "@id": "https://example.org/Standard/StandardID",
        "@type": "dct:Standard"
    },
    "dcat:contactPoint": {
        "@id": "https://example.org/vcardKind/vcardKindID",
        "@type": "vcard:Kind",
```

<figure><img src="image_25.png" /></figure>
```json
"vcard:fn": "Corky Crystal",
"vcard:nickname": "Corks"
},
"dct:creator": {
    "@id": "https://example.org/Agent/AgentID",
    "@type": "foaf:Agent"
},
"dct:description": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"odrl:hasPolicy": {
    "@id": "https://example.org/Policy/PolicyID",
    "@type": "odrl:Policy"
},
"dct:identifier": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dct:isReferencedBy": {
    "@id": "https://example.org/isReferencedBy/isReferencedByID",
    "@type": "dct:isReferencedBy"
},
"dct:issued": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dcat:keyword": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dcat:landingPage": {
    "@id": "https://example.org/Document/DocumentID",
    "@type": "foaf:Document"
},
"dct:language": {
    "@id": "https://example.org/LinguisticSystem/LinguisticSystemID",
    "@type": "dct:LinguisticSystem"
},
"dct:license": {
    "@id": "https://example.org/LicenseDocument/LicenseDocumentID",
    "@type": "dct:LicenseDocument"
},
"dct:modified": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dct:publisher": {
```

<figure><img src="image_26.png" /></figure>
```json
"@id": "https://example.org/Agent/AgentID",
"@type": "foaf:Agent"
},
"prov:qualifiedAttribution": {
"@id": "https://example.org/Attribution/AttributionID",
"@type": "prov:Attribution"
},
"dcat:qualifiedRelation": "string",
"dct:relation": {
"@id": "https://example.org/relation/relationID",
"@type": "dct:relation"
},
"dct:rights": {
"@id": "https://example.org/RightsStatement/RightsStatementID",
"@type": "dct:RightsStatement"
},
"dcat:theme": {
"@type": "skos:Concept",
"skos:prefLabel": "cars"
},
"dct:title": {
"@id": "https://example.org/identifier/identifierID",
"@type": "dct:identifier"
},
"dct:type": {
"@id": "https://example.org/Type/TypeID",
"@type": "dt:type"
},
"dcat:endpointDescription": {
"@type": "rdfs:Resource"
},
"dcat:endpointURL": {
"@type": "rdfs:Resource"
},
"dcat:servesDataset": {
"dct:accessRights": {
"@id": "https://example.org/RightsStatement/RightsStatementID",
"@type": "dct:RightsStatement"
},
"dct:conformsTo": {
"@id": "https://example.org/Standard/StandardID",
"@type": "dct:Standard"
},
"dcat:contactPoint": {
"@id": "https://example.org/vcardKind/vcardKindID",
"@type": "vcard:Kind",
"vcard:fn": "Corky Crystal",
"vcard:nickname": "Corks"
}
```

<figure><img src="image_27.png" /></figure>
},
"dct:creator": {
    "@id": "https://example.org/Agent/AgentID",
    "@type": "foaf:Agent"
},
"dct:description": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"odrl:hasPolicy": {
    "@id": "https://example.org/Policy/PolicyID",
    "@type": "odrl:Policy"
},
"dct:identifier": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dct:isReferencedBy": {
    "@id": "https://example.org/isReferencedBy/isReferencedByID",
    "@type": "dct:isReferencedBy"
},
"dct:issued": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dcat:keyword": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dcat:landingPage": {
    "@id": "https://example.org/Document/DocumentID",
    "@type": "foaf:Document"
},
"dct:language": {
    "@id": "https://example.org/LinguisticSystem/LinguisticSystemID",
    "@type": "dct:LinguisticSystem"
},
"dct:license": {
    "@id": "https://example.org/LicenseDocument/LicenseDocumentID",
    "@type": "dct:LicenseDocument"
},
"dct:modified": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dct:publisher": {
    "@id": "https://example.org/Agent/AgentID",
    "@type": "foaf:Agent"

<figure><img src="image_28.png" /></figure>

Funded by
the European Union
```json
},
"prov:qualifiedAttribution": {
    "@id": "https://example.org/Attribution/AttributionID",
    "@type": "prov:Attribution"
},
"dcat:qualifiedRelation": "string",
"dct:relation": {
    "@id": "https://example.org/relation/relationID",
    "@type": "dct:relation"
},
"dct:rights": {
    "@id": "https://example.org/RightsStatement/RightsStatementID",
    "@type": "dct:RightsStatement"
},
"dcat:theme": {
    "@type": "skos:Concept",
    "skos:prefLabel": "cars"
},
"dct:title": {
    "@id": "https://example.org/identifier/identifierID",
    "@type": "dct:identifier"
},
"dct:type": {
    "@id": "https://example.org/Type/TypeID",
    "@type": "dt:type"
},
"dct:accrualPeriodicity": {
    "@id": "https://example.org/Frequency/FrequencyID",
    "@type": "dct:Frequency"
},
"dcat:distribution": {
    "dcat:accessService": "string",
    "dct:accessRights": {
        "@id": "https://example.org/RightsStatement/RightsStatementID",
        "@type": "dct:RightsStatement"
    },
    "dcat:accessURL": {
        "@type": "rdfs:Resource"
    },
    "dcat:byteSize": {
        "@type": "xsd:decimal",
        "@value": 4
    },
    "dcat:compressFormat": {
        "@id": "https://example.org/MediaType/MediaID",
        "@type": "dct:MediaType"
    },
    "dct:conformsTo": {
```

<figure><img src="image_29.png" /></figure>
```json
"@id": "https://example.org/Standard/StandardID",
"@type": "dct:Standard"
},
"dct description": {
"@type": "rdfs:Literal",
"@value": "Lorem ipsum"
},
"dcat:downloadURL": {
"@type": "rdfs:Resource"
},
"dct:format": {
"@id": "https://example.org/MediaTypeOrExtent/MediaTypeOrExtentID",
"@type": "dct:MediaTypeOrExtent"
},
"odrl:hasPolicy": {
"@id": "https://example.org/Policy/PolicyID",
"@type": "odrl:Policy"
},
"dct:issued": {
"@type": "rdfs:Literal",
"@value": "Lorem ipsum"
},
"dct:license": {
"@id": "https://example.org/LicenseDocument/LicenseDocumentID",
"@type": "dct:LicenseDocument"
},
"dcat:mediaType": {
"@id": "https://example.org/MediaType/MediaID",
"@type": "dct:MediaType"
},
"dct:modified": {
"@type": "rdfs:Literal",
"@value": "Lorem ipsum"
},
"dcat:packageFormat": {
"@id": "https://example.org/MediaType/MediaTypeID",
"@type": "dct:MediaType"
},
"dct:rights": {
"@id": "https://example.org/RightsStatement/RightsStatementID",
"@type": "dct:RightsStatement"
},
"dcat:spatialResolutionInMeters": {
"@type": "xsd:decimal",
"@value": 4
},
"dcat:temporalResolution": {
"@type": "xsd:duration"
}
```

<figure><img src="image_30.png" /></figure>
```json
},
"dct:title": {
    "@type": "rdfs:Literal",
    "@value": "Lorem ipsum"
}
},
"dct:spatial": {
    "@id": "https://example.org/Location/LocationID",
    "@type": "dct:Location"
},
"dcat:spatialResolutionInMeters": {
    "@type": "xsd:decimal",
    "@value": 4
},
"dct:temporal": {
    "@id": "https://example.org/PeriodOfTime/PeriodOfTimeID",
    "@type": "dct:PeriodOfTime"
},
"dcat:temporalResolution": {
    "@type": "xsd:duration"
},
"prov:wasGeneratedBy": {
    "@id": "https://example.org/Activity/ActivityID",
    "@type": "prov:Activity"
}
}
},
"mod:endorsedBY": {
    "@id": "https://example.org/Agent/AgentID",
    "@type": "dct:Agent"
},
"mod:group": {
    "@id": "https://example.org/Group/GroupID",
    "@type": [
        "mod:Group"
    ]
},
"mod:hasEvaluation": {
    "@id": "https://example.org/Evaluation/EvaluationID",
    "@type": [
        "mod:Evaluation"
    ]
},
"mod:hasFormalityLevel": {
    "@type": "xsd:string",
    "@value": "Lorem ipsum"
},
"mod:knownUsage": {
```

<figure><img src="image_31.png" /></figure>

Funded by
the European Union
```json
"@type": "xsd:string",
"@value": "Lorem ipsum"
},
"mod:metrics": {
"@type": "xsd:nonNegativeInteger",
"@value": 5
},
"mod: numberOfEnsorments": {
"@type": "xsd:nonNegativeInteger",
"@value": 5
},
"mod: numberOfEvaluations": {
"@type": "xsd:nonNegativeInteger",
"@value": 5
},
"mod: numberOfNotes": {
"@type": "xsd:nonNegativeInteger",
"@value": 5
},
"mod: numberOfUsingProjects": {
"@type": "xsd:nonNegativeInteger",
"@value": 5
},
"mod: semanticArtefactRelation": "string",
"mod: status": {
"@type": "xsd:string",
"@value": "Lorem ipsum"
},
"mod:URI": {
"@type": "xsd:anyURI",
"@value": "https://example.org"
},
"mod:usedInProject": {
"@id": "https://example.org/Project/ProjectID",
"@type": "foaf:Project"
}
}
```

Diagram 5. TTL Example of a SemanticArtefact

```json
@prefix : < ://purl.org/dc/terms/> .
@prefix : < ://www.w3.org/ns/dcat#> .
@prefix : < ://www.w3.org/2001/XMLSchema#> .
```

<figure><img src="image_32.png" /></figure>
```xml
@prefix : < ://www.w3.org/2004/02/skos/core#> .
@prefix : < ://www.w3.org/ns/odrl/2/> .
@prefix : < ://www.w3.org/ns/prov#> .
@prefix : < ://w3id.org/mod#> .
@prefix : < ://xmlns.com/foaf/0.1/> .
@prefix : < ://www.w3.org/2006/vcard/ns#> .
@prefix : < ://www.w3.org/2000/01/rdf-schema#> .

< ://example.org/SemanticArtefact/SemanticArtefactID>
  < ://w3id.org/mod#SemanticArtefact> ;
  < ://example.org/RightsStatement/RightsStatementID> ;
  < ://example.org/Standard/StandardID> ;
  < ://example.org/Agent/AgentID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/isReferencedBy/isReferencedByID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/LinguisticSystem/LinguisticSystemID> ;
  < ://example.org/LicenseDocument/LicenseDocumentID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/Agent/AgentID> ;
  < ://example.org/relation/relationID> ;
  < ://example.org/RightsStatement/RightsStatementID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/Type/TypeID> ;
    < ://example.org/vcardKind/vcardKindID> ;
    < ://example.org/identifier/identifierID> ;
    < ://example.org/Document/DocumentID> ;
    "string"^ :string ;
  [
    :Concept ;
    : "cars"^ :string
  ] ;
  < ://example.org/Policy/PolicyID> ;
  < ://example.org/Attribution/AttributionID>
  ;
  "https://example.org"^ : ;
  "Lorem ipsum"^ :string ;
  < ://example.org/Analytics/AnalyticsID> ;
  "Lorem ipsum"^ :string ;
  < ://example.org/SemanticArtefactService/SemanticArtefactServiceID> ;
  < ://example.org/Agent/AgentID> ;
  :group < ://example.org/Group/GroupID> ;
    < ://example.org/Evaluation/EvaluationID> ;
    "Lorem ipsum"^ :string ;
    "Lorem ipsum"^ :string ;
    "5"^ : ;
    "5"^ : ;
    "5"^ : ;
    "5"^ : ;
  </
```

<figure><img src="image_33.png" /></figure>
```json
  "string"^^ :string ;
  "Lorem ipsum"^ :string ;
  < ://example.org/Project/ProjectID> .

< ://example.org/RightsStatement/RightsStatementID> a dc:RightsStatement
.

< ://example.org/Standard/StandardID> a dc:Standard .
< ://example.org/Agent/AgentID> a foaf:Agent, dc:Agent .
< ://example.org/identifier/identifierID> a dc:identifier .
< ://example.org/isReferencedBy/isReferencedByID> a dc:isReferencedBy .
< ://example.org/LinguisticSystem/LinguisticSystemID> a
dc:LinguisticSystem .

< ://example.org/LicenseDocument/LicenseDocumentID> a dc:LicenseDocument
.

< ://example.org/relation/relationID> a dc:relation .
< ://example.org/Type/TypeID> a <dt:type> .
< ://example.org/vcardKind/vcardKindID>
  :Kind ;
  : "Corky Crystal"^ :string ;
  : "Corks"^ :string .

< ://example.org/Document/DocumentID> a foaf:Document .
< ://example.org/Policy/PolicyID> a odrl:Policy .
< ://example.org/Attribution/AttributionID> a prov:Attribution .
< ://example.org/Analytics/AnalyticsID> a mod:Analytics .
< ://example.org/SemanticArtefactService/SemanticArtefactServiceID>
  :SemanticArtefactService ;

  < ://example.org/RightsStatement/RightsStatementID> ;
  < ://example.org/Standard/StandardID> ;
  < ://example.org/Agent/AgentID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/isReferencedBy/isReferencedByID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/LinguisticSystem/LinguisticSystemID> ;
  < ://example.org/LicenseDocument/LicenseDocumentID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/Agent/AgentID> ;
  < ://example.org/relation/relationID> ;
  < ://example.org/RightsStatement/RightsStatementID> ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/Type/TypeID> ;
  < ://example.org/vcardKind/vcardKindID> ;
  [ :Resource ] ;
  < ://example.org/identifier/identifierID> ;
  < ://example.org/Document/DocumentID> ;
  "string"^ :string ;
  [
    < ://example.org/RightsStatement/RightsStatementID>
  ;
  < ://example.org/Frequency/FrequencyID> ;
```

<figure><img src="image_34.png" /></figure>
```json
: < ://example.org/Standard/StandardID> ;
: < ://example.org/Agent/AgentID> ;
: < ://example.org/identifier/identifierID> ;
: < ://example.org/identifier/identifierID> ;
: < ://example.org/isReferencedBy/isReferencedByID>
;
: < ://example.org/identifier/identifierID> ;
: < ://example.org/LinguisticSystem/LinguisticSystemID> ;
: < ://example.org/LicenseDocument/LicenseDocumentID> ;
: < ://example.org/identifier/identifierID> ;
: < ://example.org/Agent/AgentID> ;
: < ://example.org/relation/relationID> ;
: < ://example.org/RightsStatement/RightsStatementID> ;
: < ://example.org/Location/LocationID> ;
: < ://example.org/PeriodOfTime/PeriodOfTimeID> ;
: < ://example.org/identifier/identifierID> ;
: < ://example.org/Type/TypeID> ;
: < ://example.org/vcardKind/vcardKindID> ;
: [
: 
< ://example.org/RightsStatement/RightsStatementID> ;
: < ://example.org/Standard/StandardID> ;
: "Lorem ipsum"^ :Literal ;
: < ://example.org/MediaTypeOrExtent/MediaTypeOrExtentID>
;
: "Lorem ipsum"^ :Literal ;
: < ://example.org/LicenseDocument/LicenseDocumentID> ;
: "Lorem ipsum"^ :Literal ;
: < ://example.org/RightsStatement/RightsStatementID> ;
: "Lorem ipsum"^ :Literal ;
: "string"^ :string ;
: [ :Resource ] ;
: 4.0 ;
: < ://example.org/MediaType/MediaTypeID> ;
: [ :Resource ] ;
: < ://example.org/MediaType/MediaTypeID> ;
: < ://example.org/MediaType/MediaTypeID> ;
: 4.0 ;
: [ : ] ;
: < ://example.org/Policy/PolicyID>
];
: < ://example.org/identifier/identifierID> ;
: < ://example.org/Document/DocumentID> ;
: "string"^ :string ;
: 4.0 ;
: [ : ] ;
: [
: :Concept ;
: "cars"^ :string
];
: < ://example.org/Policy/PolicyID> ;
```

<figure><img src="image_35.png" /></figure>
```xml
< ://example.org/Attribution/AttributionID> ;
    : < ://example.org/Activity/ActivityID>
];
    : [ :Concept ;
        : "cars"^^ :string
    ] ;
    : < ://example.org/Policy/PolicyID> ;
    : < ://example.org/Attribution/AttributionID>
.

< ://example.org/Frequency/FrequencyID> a dc:Frequency .
< ://example.org/Location/LocationID> a dc:Location .
< ://example.org/PeriodOfTime/PeriodOfTimeID> a dc:PeriodOfTime .
< ://example.org/MediaTypeOrExtent/MediaTypeOrExtentID> a
dc:MediaTypeOrExtent .
< ://example.org/MediaType/MediaTypeID> a dc:MediaType .
< ://example.org/Activity/ActivityID> a prov:Activity .
< ://example.org/Group/GroupID> a mod:Group .
< ://example.org/Evaluation/EvaluationID> a mod:Evaluation .
< ://example.org/Project/ProjectID> a foaf:Project .
```

## Diagram 6. RDF/XML Example of a Semantic Artefact

```xml
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:dc="http://purl.org/dc/terms/"
        xmlns:dcat="http://www.w3.org/ns/dcat#"
        xmlns:skos="http://www.w3.org/2004/02/skos/core#"
        xmlns:odrl="http://www.w3.org/ns/odrl/2/"
        xmlns:prov="http://www.w3.org/ns/prov#"
        xmlns:mod="https://w3id.org/mod#"
        xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
        xmlns:foaf="http://xmlns.com/foaf/0.1/"
        xmlns:vcard="http://www.w3.org/2006/vcard/ns#">
    <rdf:Description
        rdf:about="https://example.org/SemanticArtefact/SemanticArtefactID">
        <rdf:type rdf:resource="https://w3id.org/mod#SemanticArtefact"/>
        <dc:accessRights
            rdf:resource="https://example.org/RightsStatement/RightsStatementID"/>
            <dc:conformsTo rdf:resource="https://example.org/Standard/StandardID"/>
            <dc:creator rdf:resource="https://example.org/Agent/AgentID"/>
            <dc description
                rdf:resource="https://example.org/identifier/identifierID"/>
        </dc>
    </rdf:Description>
```

<figure><img src="image_36.png" /></figure>
```xml
<dc:identifier
    rdf:resource="https://example.org/identifier/identifierID"/>
<dc:isReferencedBy
    rdf:resource="https://example.org/isReferencedBy/isReferencedByID"/>
<dc:issued rdf:resource="https://example.org/identifier/identifierID"/>
<dc:language
    rdf:resource="https://example.org/LinguisticSystem/LinguisticSystemID"/>
<dc:license
    rdf:resource="https://example.org/LicenseDocument/LicenseDocumentID"/>
<dc:modified
    rdf:resource="https://example.org/identifier/identifierID"/>
<dc:publisher rdf:resource="https://example.org/Agent/AgentID"/>
<dc:relation rdf:resource="https://example.org/relation/relationID"/>
<dc:rights
    rdf:resource="https://example.org/RightsStatement/RightsStatementID"/>
<dc:title rdf:resource="https://example.org/identifier/identifierID"/>
<dc:type rdf:resource="https://example.org/Type/TypeID"/>
<dcat:contactPoint
    rdf:resource="https://example.org/vcardKind/vcardKindID"/>
<dcat:keyword
    rdf:resource="https://example.org/identifier/identifierID"/>
<dcat:landingPage
    rdf:resource="https://example.org/Document/DocumentID"/>
<dcat:qualifiedRelation
    rdf:datatype="http://www.w3.org/2001/XMLSchema#string"/>
</dcat:qualifiedRelation>
<dcat:theme>
    <skos:Concept>
        <skos:prefLabel>
            <skos:prefLabel>
                <skos:resource="https://example.org/2001/XMLSchema#string"/>
            </skos:prefLabel>
        </skos:Concept>
    </dcat:theme>
</dcat:theme>
<odrl:hasPolicy
    rdf:resource="https://example.org/Policy/PolicyID"/>
<prov:qualifiedAttribution
    rdf:resource="https://example.org/Attribution/AttributionID"/>
<mod:URI
    rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI"/>
</mod:URI>
<mod:acronym
    rdf:datatype="http://www.w3.org/2001/XMLSchema#string"/>
</mod:acronym>
<mod:analytics>
    <mod:Analytics
        <mod:about="https://example.org/Analytics/AnalyticsID"/>
    </mod:Analytics>
</mod:analytics>
<mod:competencyQuestion
    rdf:datatype="http://www.w3.org/2001/XMLSchema#string"/>
</mod:competencyQuestion>
<mod:designedForTask>
    <mod:SemanticArtefactService
```

<figure><img src="image_37.png" /></figure>

Funded by
the European Union
```xml
rdf:about="https://example.org/SemanticArtefactService/SemanticArtefactServiceID"/>
<dc:accessRights
rdf:resource="https://example.org/RightsStatement/RightsStatementID"/>
<dc:conformsTo
rdf:resource="https://example.org/Standard/StandardID"/>
<dc:creator rdf:resource="https://example.org/Agent/AgentID"/>
<dc description
rdf:resource="https://example.org/identifier/identifierID"/>
<dc:identifier
rdf:resource="https://example.org/identifier/identifierID"/>
<dc:isReferencedBy
rdf:resource="https://example.org/isReferencedBy/isReferencedByID"/>
<dc:issued
rdf:resource="https://example.org/identifier/identifierID"/>
<dc:language
rdf:resource="https://example.org/LinguisticSystem/LinguisticSystemID"/>
<dc:license
rdf:resource="https://example.org/LicenseDocument/LicenseDocumentID"/>
<dc:modified
rdf:resource="https://example.org/identifier/identifierID"/>
<dc:publisher rdf:resource="https://example.org/Agent/AgentID"/>
<dc:relation
rdf:resource="https://example.org/relation/relationID"/>
<dc:rights
rdf:resource="https://example.org/RightsStatement/RightsStatementID"/>
<dc:title
rdf:resource="https://example.org/identifier/identifierID"/>
<dc:type rdf:resource="https://example.org/Type/TypeID"/>
<dcat:contactPoint
rdf:resource="https://example.org/vcardKind/vcardKindID"/>
<dcat:endpointDescription>
<rdfs:Resource>
</rdfs:Resource>
</dcat:endpointDescription>

<dcat:endpointURL>
<rdfs:Resource>
</rdfs:Resource>
</dcat:endpointURL>

<dcat:keyword
rdf:resource="https://example.org/identifier/identifierID"/>
<dcat:landingPage
rdf:resource="https://example.org/Document/DocumentID"/>
<dcat:qualifiedRelation
rdf:datatype="http://www.w3.org/2001/XMLSchema#string"/>
</dcat:qualifiedRelation>

<dcat:servesDataset>
<rdf:Description>
<dc:accessRights
rdf:resource="https://example.org/RightsStatement/RightsStatementID"/>
```

<figure><img src="image_38.png" /></figure>
```xml
<dc:accrualPeriodicity>
  <dc:Frequency
    rdf:about="https://example.org/Frequency/FrequencyID">
    </dc:Frequency>
  </dc:accrualPeriodicity>

<dc:conformsTo
  rdf:resource="https://example.org/Standard/StandardID">
    <dc:creator rdf:resource="https://example.org/Agent/AgentID">
    <dc description
      rdf:resource="https://example.org/identifier/identifierID">
        <dc:identifier
          rdf:resource="https://example.org/identifier/identifierID">
            <dc:isReferencedBy
              rdf:resource="https://example.org/isReferencedBy/isReferencedByID">
                <dc:issued
                  rdf:resource="https://example.org/identifier/identifierID">
                    <dc:language
                      rdf:resource="https://example.org/LinguisticSystem/LinguisticSystemID">
                        <dc:license
                          rdf:resource="https://example.org/LicenseDocument/LicenseDocumentID">
                            <dc:modified
                              rdf:resource="https://example.org/identifier/identifierID">
                                <dc:publisher rdf:resource="https://example.org/Agent/AgentID">
                                <dc:relation
                                  rdf:resource="https://example.org/relation/relationID">
                                    <dc:rights
                                      rdf:resource="https://example.org/RightsStatement/RightsStatementID">
                                        <dc:spatial>
                                          <dc:Location
                                            rdf:about="https://example.org/Location/LocationID">
                                              </dc:Location>
                                          </dc:spatial>
                                        </dc:temporal>
                                          <dc:PeriodOfTime
                                            rdf:about="https://example.org/PeriodOfTime/PeriodOfTimeID">
                                              </dc:PeriodOfTime>
                                          </dc:temporal>
                                        </dc:title
                                      rdf:resource="https://example.org/identifier/identifierID">
                                        <dc:type rdf:resource="https://example.org/Type/TypeID">
                                          <dcat:contactPoint
                                            rdf:resource="https://example.org/vcardKind/vcardKindID">
                                                <dcat:distribution>
                                                    <rdf:Description>
                                                        <dc:accessRights
                                                          rdf:resource="https://example.org/RightsStatement/RightsStatementID">
                                                              <dc:conformsTo
                                                                rdf:resource="https://example.org/Standard/StandardID">
                                                                  <dc description
```

<figure><img src="image_39.png" /></figure>

Funded by
the European Union
```xml
rdf:datatype="http://www.w3.org/2000/01/rdf-schema#Literal">
</dc description>
<dc:format>
<dc:TypeOrExtent
rdf:about="https://example.org/MediaTypeOrExtent/MediaTypeOrExtentID">
</dc:format>
</dc:format>
<dc:issued
rdf:datatype="http://www.w3.org/2000/01/rdf-schema#Literal">
</dc:issued>
<dc:license
rdf:resource="https://example.org/LicenseDocument/LicenseDocumentID"/>
<dc:modified
rdf:datatype="http://www.w3.org/2000/01/rdf-schema#Literal">
</dc:modified>
<dc:rights
rdf:resource="https://example.org/RightsStatement/RightsStatementID"/>
<dc:title
rdf:datatype="http://www.w3.org/2000/01/rdf-schema#Literal">
</dc:title>
<dcat:accessService
rdf:datatype="http://www.w3.org/2001/XMLSchema#string">
</dcat:accessService>
<dcat:accessURL>
<rdfs:Resource>
</rdfs:Resource>
</dcat:accessURL>
<dcat:byteSize
rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal">
</dcat:byteSize>
<dcat:compressFormat
rdf:resource="https://example.org/MediaType/MediaTypeID"/>
<dcat:downloadURL>
<rdfs:Resource>
</rdfs:Resource>
</dcat:downloadURL>
<dcat:mediaType
rdf:resource="https://example.org/MediaType/MediaTypeID"/>
<dcat:packageFormat
rdf:resource="https://example.org/MediaType/MediaTypeID"/>
<dcat:spatialResolutionInMeters
rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal">
</dcat:spatialResolutionInMeters>
<dcat:temporalResolution>
<xsd:duration>
</xsd:duration>
</dcat:temporalResolution>
<odrl:hasPolicy
rdf:resource="https://example.org/Policy/PolicyID"/>
```

<figure><img src="image_40.png" /></figure>
```xml
</rdf:Description>
</dcat:distribution>

<dcat:keyword
  rdf:resource="https://example.org/identifier/identifierID"/>
<dcat:landingPage
  rdf:resource="https://example.org/Document/DocumentID"/>
<dcat:qualifiedRelation
  rdf:datatype="http://www.w3.org/2001/XMLSchema#string"/>
</dcat:qualifiedRelation>

<dcat:spatialResolutionInMeters
  rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal"/>
</dcat:spatialResolutionInMeters>

<dcat:temporalResolution>
  <xsd:duration/>
  <xsd:duration/>
</dcat:temporalResolution>

<dcat:theme>
  <skos:Concept>
    <skos:prefLabel
      rdf:datatype="http://www.w3.org/2001/XMLSchema#string"/>
    </skos:prefLabel>
  </skos:Concept>
</dcat:theme>

<odrl:hasPolicy
  rdf:resource="https://example.org/Policy/PolicyID"/>
<prov:qualifiedAttribution
  rdf:resource="https://example.org/Attribution/AttributionID"/>
<prov:wasGeneratedBy>
  <prov:Activity
    rdf:about="https://example.org/Activity/ActivityID"/>
  </prov:Activity>
</prov:wasGeneratedBy>

</rdf:Description>
</dcat:servesDataset>

<dcat:theme>
  <skos:Concept>
    <skos:prefLabel
      rdf:datatype="http://www.w3.org/2001/XMLSchema#string"/>
    </skos:prefLabel>
  </skos:Concept>
</dcat:theme>

<odrl:hasPolicy
  rdf:resource="https://example.org/Policy/PolicyID"/>
<prov:qualifiedAttribution
  rdf:resource="https://example.org/Attribution/AttributionID"/>
</mod:SemanticArtefactService>
</mod:designedForTask>

<mod:endorsedBy
  rdf:resource="https://example.org/Agent/AgentID"/>
```

<figure><img src="image_41.png" /></figure>
<mod:group>
  <mod:Group rdf:about="https://example.org/Group/GroupID">
  </mod:Group>
</mod:group>

<mod:hasEvaluation>
  <mod:Evaluation
    rdf:about="https://example.org/Evaluation/EvaluationID">
  </mod:Evaluation>
</mod:hasEvaluation>

<mod:hasFormalityLevel
  <mod:datatype="http://www.w3.org/2001/XMLSchema#string">
  </mod:hasFormalityLevel>
  <mod:knownUsage
    <mod:datatype="http://www.w3.org/2001/XMLSchema#string">
    </mod:knownUsage>
  </mod:knownUsage>
</mod:hasFormalityLevel>

<mod:metrics
  <mod:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"> </mod:metrics>
  <mod:numberOfEnsorments
    <mod:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"> </mod:nu
  </mod:numberOfEnsorments>
  <mod:numberOfEvaluations
    <mod:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"> </mod:nu
  </mod:numberOfEvaluations>
  <mod:numberOfNotes
    <mod:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"> </mod:nu
  </mod:numberOfNotes>
  <mod:numberOfUsingProjects
    <mod:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"> </mod:nu
  </mod:numberOfUsingProjects>
  <mod:semanticArtefactRelation
    <mod:datatype="http://www.w3.org/2001/XMLSchema#string"> </mod:semanticArtefactRelation>
  </mod:status>
  <mod:usedInProject>
    <foaf:Project rdf:about="https://example.org/Project/ProjectID">
    </foaf:Project>
  </mod:usedInProject>
</mod:status>
</mod:usedInProject>

</rdf:Description>

<dc:RightsStatement
  <dc:about="https://example.org/RightsStatement/RightsStatementID">
</dc:RightsStatement>

<dc:Standard rdf:about="https://example.org/Standard/StandardID">
</dc:Standard>

<foaf:Agent rdf:about="https://example.org/Agent/AgentID">

<figure><img src="image_42.png" /></figure>