Difference between revisions of "Engineering Objects (Draft)"

From
Jump to: navigation, search
 
(6 intermediate revisions by the same user not shown)
Line 12: Line 12:
 
The definition of the basic engineering objects are given as follows. All of the definitions with the exception of pid manager and provenance service, are derived from the definitions of the corresponding computational viewpoint objects.
 
The definition of the basic engineering objects are given as follows. All of the definitions with the exception of pid manager and provenance service, are derived from the definitions of the corresponding computational viewpoint objects.
  
* annotation service
+
* [[Engineering Objects (Draft)#annotation service|annotation service]]
* catalogue service
+
* [[Engineering Objects (Draft)#catalogue service|catalogue service]]
* coordination service
+
* [[Engineering Objects (Draft)#coordination service|coordination service]]
* data exporter
+
* [[Engineering Objects (Draft)#data exporter|data exporter]]
* data importer
+
* [[Engineering Objects (Draft)#data importer|data importer]]
* data store controller
+
* [[Engineering Objects (Draft)#data store controller|data store controller]]
* data transfer service
+
* [[Engineering Objects (Draft)#data transfer service|data transfer service]]
* pid manager
+
* [[Engineering Objects (Draft)#pid manager|pid manager]]
* process controller
+
* [[Engineering Objects (Draft)#process controller|process controller]]
* provenance service
+
* [[Engineering Objects (Draft)#provenance service|provenance service]]
* raw data collector
+
* [[Engineering Objects (Draft)#raw data collector|raw data collector]]
  
 
| style="width: 70%; background-color: #fcfcfc; border-radius: 5px; border: 1px solid #ccc; padding: 10px 10px 10px 40px"|  
 
| style="width: 70%; background-color: #fcfcfc; border-radius: 5px; border: 1px solid #ccc; padding: 10px 10px 10px 40px"|  
Line 202: Line 202:
 
|-
 
|-
 
| Computational || [[CV Component Objects#Data importer|'''data importer''']]
 
| Computational || [[CV Component Objects#Data importer|'''data importer''']]
 +
|}
 +
|}
 +
 +
=== <span style="color: #BBCE00">data store controller</span> ===
 +
 +
A basic engineering object that encapsulates the functions required to store and maintain data assets managed by the RI. The data store controller also provides access to authorised agents. A data store controller should provide five functions: update records, query resoruce, retrieve data, import data, export data.
 +
 +
{| style="width: 85%;"
 +
|-
 +
| style="width: 55%; vertical-align: top; padding: 10px 10px 10px 10px"|
 +
data store controller functions
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Function</span>''' !! '''<span style="color: #BBCE00">Description</span>''' !!
 +
 +
'''<span style="color: #BBCE00">Type</span>'''
 +
|-
 +
| update records || function for editing data records within a data store, as well as preparing ingestion of data streams. || server
 +
|-
 +
| query resource || function for querying the data store. || server
 +
|-
 +
| retrieve data || functions to manage the retrieval of assets from a data store || server
 +
|-
 +
| import asset || function provided for receiving assets into a designated data store || consumer
 +
|-
 +
| export asset || function provided for extracting assets from a designated data store. || producer
 +
|}
 +
| style="width: 45%; vertical-align: top; padding: 10px 10px 10px 40px"|
 +
data store controller correspondences
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Viewpoint</span>''' !! '''<span style="color: #BBCE00">Correspondence</span>'''
 +
|-
 +
| Science || [https://confluence.egi.eu/display/ERMdev/SV+Community+Roles#SVCommunityRoles-roles_curRolesintheDataCurationCommunity '''data curation subsystem'''] (role)
 +
|-
 +
| Computational || [[CV Component Objects#Data store controller|'''data store controller''']]
 +
|}
 +
|}
 +
 +
=== <span style="color: #BBCE00">data transfer service</span> ===
 +
 +
A basic engineering object for managing the transfer of assets into and out-of the data stores. The data transfer service is responsible for setting up data transfers, including any repackaging of assets necessary prior to delivery.
 +
 +
{| style="width: 85%;"
 +
|-
 +
| style="width: 55%; vertical-align: top; padding: 10px 10px 10px 10px"|
 +
data transfer service functions
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Function</span>''' !! '''<span style="color: #BBCE00">Description</span>''' !!
 +
 +
'''<span style="color: #BBCE00">Type</span>'''
 +
|-
 +
| prepare data transfer || function for managing and scheduling a data transfer either into or out of the data stores || server
 +
|-
 +
| create transporter || function for creating and configuring the required data transporters ( [[Engineering Objects (Draft)#raw data collector|'''raw data collector''']], [[Engineering Objects (Draft)#data importer|'''data importer''']], or [[Engineering Objects (Draft)#data exporter|'''data exporter''']]) || internal
 +
|}
 +
| style="width: 45%; vertical-align: top; padding: 10px 10px 10px 40px"|
 +
data transfer service correspondences
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Viewpoint</span>''' !! '''<span style="color: #BBCE00">Correspondence</span>'''
 +
|-
 +
| Science || [https://confluence.egi.eu/display/ERMdev/SV+Community+Roles#SVCommunityRoles-roles_curRolesintheDataCurationCommunity '''data curation subsystem'''] (role)
 +
|-
 +
| Computational || [[CV Service Objects#Data transfer service|'''data transfer service''']]
 +
|}
 +
|}
 +
 +
=== <span style="color: #BBCE00">pid manager</span> ===
 +
 +
A basic engineering object for managing the acquisition, registration, and maintenance of persistent identifiers for data assets. Persistent identifiers can be generated internally or externally. For assigning resolvable global unique identifiers, the pid manager commonly depends of an external [[CV Service Objects#PID service|'''PID service''']]. A pid manager should provide three functionalities: acquire identifier, manage identifier, and resolve identifier.
 +
 +
{| style="width: 85%;"
 +
|-
 +
| style="width: 55%; vertical-align: top; padding: 10px 10px 10px 10px"|
 +
pid manager functions
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Function</span>''' !! '''<span style="color: #BBCE00">Description</span>''' !!
 +
 +
'''<span style="color: #BBCE00">Type</span>'''
 +
|-
 +
| acquire identifier || function for providing new persistent identifiers for assets || server
 +
|-
 +
| manage identifier || function for retrieving, updating and deleting identifiers || server
 +
|-
 +
| resolve identifier || function for providing the physical location of an asset to authorised requester || server
 +
|}
 +
| style="width: 45%; vertical-align: top; padding: 10px 10px 10px 40px"|
 +
data transfer service correspondences
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Viewpoint</span>''' !! '''<span style="color: #BBCE00">Correspondence</span>'''
 +
|-
 +
| Science || [https://confluence.egi.eu/display/ERMdev/SV+Community+Roles#SVCommunityRoles-roles_curRolesintheDataCurationCommunity '''PID Manager'''] (role)
 +
|-
 +
| Information || [https://confluence.egi.eu/display/ERMdev/IV+Information+Action+Types#IVInformationActionTypes-assignuniqueidentifier '''assign unique identifier'''] (action)
 +
|-
 +
| Computational || [[CV Component Objects#PID manager|'''PID manager''']] (object)
 +
|}
 +
|}
 +
 +
=== <span style="color: #BBCE00">process controller</span> ===
 +
 +
A basic engineering object providing the functions required for using an execution resource (generically, any computing platform that can host some process) as part of a predefined workflow. A process controller should provide five functions:
 +
 +
{| style="width: 85%;"
 +
|-
 +
| style="width: 55%; vertical-align: top; padding: 10px 10px 10px 10px"|
 +
process controller functions
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Function</span>''' !! '''<span style="color: #BBCE00">Description</span>''' !!
 +
 +
'''<span style="color: #BBCE00">Type</span>'''
 +
|-
 +
| coordinate process || function for controlling the execution resource associated with a given process || server
 +
|-
 +
| retrieve results || functions for retrieving results from an execution resource || server
 +
|-
 +
| update records || provides functions for modifying data on an execution resource, including preparing the resource for the ingestion of bulk data streams || server
 +
|-
 +
| stage data || used to acquire streams of data from data store objects as part of some process. || consumer
 +
|-
 +
| export asset || function provided for retrieving the assets produced by some process || producer
 +
|}
 +
| style="width: 45%; vertical-align: top; padding: 10px 10px 10px 40px"|
 +
Catalogue service correspondences
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Viewpoint</span>''' !! '''<span style="color: #BBCE00">Correspondence</span>'''
 +
|-
 +
| Science || [https://confluence.egi.eu/display/ERMdev/SV+Community+Roles#SVCommunityRoles-roles_serRolesintheDataProcessingCommunity '''data processing subsystem'''] (role) <br>[https://confluence.egi.eu/display/ERMdev/SV+Community+Behaviours#SVCommunityBehaviours-beh_serBehavioursoftheDataProcessingCommunity '''compose service'''] (behaviour)
 +
|-
 +
| Information || [https://confluence.egi.eu/display/ERMdev/IV+Information+Action+Types#IVInformationActionTypes-processdata '''process data'''] (action)
 +
|-
 +
| Computational || [[CV Component Objects#Process controller|'''process controller''']]
 +
|}
 +
|}
 +
 +
=== <span style="color: #BBCE00">provenance service</span> ===
 +
 +
A basic engineering object that supports the ability to publish and search collections of provenance metadata for assets such as data, services, and related information objects managed by a research infrastructure. A provenance service is a specialisation of a catalogue service. A provenance service must provide at least four functionalities: query catalogues, update catalogues, export metadata, and query resource.
 +
 +
{| style="width: 85%;"
 +
|-
 +
| style="width: 55%; vertical-align: top; padding: 10px 10px 10px 10px"|
 +
Provenance service functions
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Function</span>''' !! '''<span style="color: #BBCE00">Description</span>''' !!
 +
 +
'''<span style="color: #BBCE00">Type</span>'''
 +
|-
 +
| export metadata || function for gathering metadata to be exported with assets extracted from the data store objects. || server
 +
|-
 +
| query catalogues || function for querying assets held by the infrastructure, including the retrieval of assets associated with a given persistent identifier. || server
 +
|-
 +
| update catalogues || function for updating of catalogues and the associated data assets. || server
 +
|-
 +
| invoke resource || function for enabling the invocation of  other services such as harvesting, exporting data, or automated update. This includes the communication with internal components such as the data store controller for retrieving data. || client
 +
|}
 +
| style="width: 45%; vertical-align: top; padding: 10px 10px 10px 40px"|
 +
Catalogue service correspondences
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Viewpoint</span>''' !! '''<span style="color: #BBCE00">Correspondence</span>'''
 +
|-
 +
| Science || [https://confluence.egi.eu/display/ERMdev/SV+Community+Roles#SVCommunityRoles-roles_curRolesintheDataCurationCommunity '''catalogue system'''] (role)
 +
|-
 +
| Information || [[IV Information Action Types#trackprovenance|'''track provenance''']] (action) <br>[[IV Information Objects#metadatacatalogue|'''metadata catalogue''']] (instance of object)
 +
|-
 +
| Computational || [[CV Service Objects#Catalogue service|'''catalogue_service''']] (instance of object)
 +
|}
 +
|}
 +
 +
=== <span style="color: #BBCE00">raw data collector</span> ===
 +
 +
A basic engineering object to acquire, package, and transfer raw data produced by acquisition objects. A raw data collector should provide six functions: retrieve asset, update records, export metadata, export asset, deliver asset.
 +
 +
{| style="width: 85%;"
 +
|-
 +
| style="width: 55%; vertical-align: top; padding: 10px 10px 10px 10px"|
 +
raw data collector functions
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Function</span>''' !! '''<span style="color: #BBCE00">Description</span>''' !!
 +
 +
'''<span style="color: #BBCE00">Type</span>'''
 +
|-
 +
| retrieve asset || function provided to enable requesting data from a designated data store (inherited from [https://confluence.egi.eu/display/ERMdev/CV+Component+Objects#CVComponentObjects-data_transporter '''data transporter''']). || client
 +
|-
 +
| update records || function provided to inform downstream resources about impending asset transfers (inherited from [https://confluence.egi.eu/display/ERMdev/CV+Component+Objects#CVComponentObjects-data_transporter '''data transporter''']). || client
 +
|-
 +
| acquire identifier || function provided for requesting  new persistent identifier to be associated with the data being transferred. Generally, identifiers are requested when importing new data into an infrastructure. || client
 +
|-
 +
| update catalogues || function for populating the catalogues with the metadata associated to the imported data assets. || client
 +
|-
 +
| import asset || function provided for retrieving raw data from data acquisition objects || consumer
 +
|-
 +
| deliver asset || function provided for delivery of assets to a designated data store. || producer
 +
|}
 +
| style="width: 45%; vertical-align: top; padding: 10px 10px 10px 40px"|
 +
raw data collector correspondences
 +
{| class="wikitable sortable"
 +
|-
 +
! '''<span style="color: #BBCE00">Viewpoint</span>''' !! '''<span style="color: #BBCE00">Correspondence</span>'''
 +
|-
 +
| Science || [https://confluence.egi.eu/display/ERMdev/SV+Community+Roles#SVCommunityRoles-roles_acqRolesintheDataAcquisitionCommunity '''data acquisition subsystem'''] (role) <br>[https://confluence.egi.eu/display/ERMdev/SV+Community+Roles#SVCommunityRoles-roles_curRolesintheDataCurationCommunity '''data curation subsystem'''] (role)
 +
|-
 +
| Computational || [[CV Component Objects#Raw data collector|'''raw data collector''']]
 
|}
 
|}
 
|}
 
|}
Line 209: Line 421:
 
<ref name="Deliverable 8.3">ENVRIplus. (2017) Deliverable 8.3 Interoperable cataloging and harmonization for environmental RI projects: system design. ENVRI plus, 30/01/2017, Horizon 2020 Grant Agreement No 654182  http://www.envriplus.eu/wp-content/uploads/2015/08/D8.3-Interoperable-cataloging-and-harmonization-for-environmental-RI-projects-system-design.pdf</ref>
 
<ref name="Deliverable 8.3">ENVRIplus. (2017) Deliverable 8.3 Interoperable cataloging and harmonization for environmental RI projects: system design. ENVRI plus, 30/01/2017, Horizon 2020 Grant Agreement No 654182  http://www.envriplus.eu/wp-content/uploads/2015/08/D8.3-Interoperable-cataloging-and-harmonization-for-environmental-RI-projects-system-design.pdf</ref>
 
</references>
 
</references>
 
+
__NOTOC__
 
[[Category:Engineering Viewpoint (Draft)]]
 
[[Category:Engineering Viewpoint (Draft)]]

Latest revision as of 22:30, 28 March 2020

The objects described by the engineering viewpoint directly support research data management functionalities which are commonly shared among more than one RI (Identification and Citation, Curation, Cataloguing, Processing, and Provenance) [1], [2].

The engineering objects are grouped in the four top packages shown in the figure to the right: identification, catalogue, processing, and provenance, in line with the support needed for the four common data management functionalities. Two additional groups are defined to accommodate supporting objects which are needed for any working configuration: storage and data transfer. The objects included are defined as Basic Engineering Object (BEO) and provide functionalities described by CV Objects, this means that each BEO maps one to one to a CV Objects.

The grouping is not strict, these objects can be deployed side by side on a single physical machine or be distributed across network and institutional limits.

The engineering objects coupled with the Container Structure, are used to further define how the engineering objects can support the data management functionalities in different Object Configuration.

The definition of the basic engineering objects are given as follows. All of the definitions with the exception of pid manager and provenance service, are derived from the definitions of the corresponding computational viewpoint objects.

550

Engineering object groups

annotation service[edit]

A basic engineering object that supports the ability associate annotations (free texts and semantic) with the assets managed by a research infrastructure. An annotation service must provide three functionalites: annotate data, update catalogues and update records

Annotation service functions

Function Description Type
annotate data Function for requesting the annotation (free text or semantic) of existing assets. This may require the creation of additional records to record qualitative observations, provenance or structured metadata. server
update catalogues Function for updating of annotation metadata and the associations to existing assets. client
update records Function for updating of annotation records associated to assets. client

Annotation service correspondences

Viewpoint Correspondence
Science data annotation (behaviour)
Information metadata catalogue (instance of object)
Computational annotation service

catalogue service[edit]

A basic engineering object that supports the ability to publish and search collections of metadata (descriptive information) for assets such as data, services, and related information objects managed by a research infrastructure. A catalogue service must provide at least four functionalities: query catalogues, update catalogues, export metadata, and query resource.

Catalogue service functions

Function Description Type
export metadata function for gathering metadata to be exported with assets extracted from the data curation store objects (data stores). server
query catalogues function for querying assets held by the infrastructure, including the retrieval of assets associated with a given persistent identifier. server
update catalogues function for updating of catalogues and the associated data assets. server
invoke resource function for enabling the invocation of other services such as harvesting, exporting data, or automated update. This includes the communication with internal components such as the data store controller for retrieving data. client

Catalogue service correspondences

Viewpoint Correspondence
Science catalogue system (role)
Information metadata catalogue (object)
Computational catalogue service

coordination service[edit]

A basic engineering object that that supports the ability to coordinate data processing tasks on infrastructure execution resources. A coordination service should provide at least three functions: process request, coordinate process, create process controller, and prepare data transfer

Coordination service functions

Function Description

Type

process request function for scheduling the execution of data processing tasks. This could require executing complex workflows involving many (parallel) sub-tasks. server
coordinate process function used to coordinate the execution of data processing tasks on execution resources presented by process controllers. server
create process controller function for creating and configuring the required process controllers required for the different processing tasks internal
prepare data transfer function used to retrieve data (and metadata) from the data stores and to return the processing results. server

Catalogue service correspondences

Viewpoint Correspondence
Science data processing subsystem (role)
coordinate service (behaviour)
Information process data (action)
Computational coordination service

data exporter[edit]

A basic engineering object for exporting assets from the data stores. A data exporter should provide five functions: retrieve asset, update records, export metadata, export asset, deliver asset.

data exporter functions

Function Description

Type

retrieve asset function provided to enable requesting data from a designated data store (inherited from data transporter). client
update records function provided to inform downstream resources about impending asset transfers (inherited from data transporter). client
export metadata function provided for requesting any additional metadata associated with the asset being transferred. client
export asset function provided for extracting assets from a designated data store consumer
deliver asset function provided for delivery of assets to a designated data store. producer

data exporter correspondences

Viewpoint Correspondence
Science data publishing subsystem (role)
data use subsystem (role)
Computational data exporter

data importer[edit]

A basic engineering object for importing assets into the data stores. A data importer should provide six functions: retrieve asset, update records, export metadata, export asset, deliver asset.

data importer functions

Function Description

Type

retrieve asset function provided to enable requesting data from a designated data store (inherited from data transporter). client
update records function provided to inform downstream resources about impending asset transfers (inherited from data transporter). client
acquire identifier function provided for requesting new persistent identifier to be associated with the data being transferred. Generally, identifiers are requested when importing new data into an infrastructure. client
update catalogues function for populating the catalogues with the metadata associated to the imported data assets. client
import asset function provided for receiving assets from a designated data store consumer
deliver asset function provided for delivery of assets to a designated data store. producer

data importer correspondences

Viewpoint Correspondence
Science data acquisition subsystem (role)
data curation subsystem (role)
Computational data importer

data store controller[edit]

A basic engineering object that encapsulates the functions required to store and maintain data assets managed by the RI. The data store controller also provides access to authorised agents. A data store controller should provide five functions: update records, query resoruce, retrieve data, import data, export data.

data store controller functions

Function Description

Type

update records function for editing data records within a data store, as well as preparing ingestion of data streams. server
query resource function for querying the data store. server
retrieve data functions to manage the retrieval of assets from a data store server
import asset function provided for receiving assets into a designated data store consumer
export asset function provided for extracting assets from a designated data store. producer

data store controller correspondences

Viewpoint Correspondence
Science data curation subsystem (role)
Computational data store controller

data transfer service[edit]

A basic engineering object for managing the transfer of assets into and out-of the data stores. The data transfer service is responsible for setting up data transfers, including any repackaging of assets necessary prior to delivery.

data transfer service functions

Function Description

Type

prepare data transfer function for managing and scheduling a data transfer either into or out of the data stores server
create transporter function for creating and configuring the required data transporters ( raw data collector, data importer, or data exporter) internal

data transfer service correspondences

Viewpoint Correspondence
Science data curation subsystem (role)
Computational data transfer service

pid manager[edit]

A basic engineering object for managing the acquisition, registration, and maintenance of persistent identifiers for data assets. Persistent identifiers can be generated internally or externally. For assigning resolvable global unique identifiers, the pid manager commonly depends of an external PID service. A pid manager should provide three functionalities: acquire identifier, manage identifier, and resolve identifier.

pid manager functions

Function Description

Type

acquire identifier function for providing new persistent identifiers for assets server
manage identifier function for retrieving, updating and deleting identifiers server
resolve identifier function for providing the physical location of an asset to authorised requester server

data transfer service correspondences

Viewpoint Correspondence
Science PID Manager (role)
Information assign unique identifier (action)
Computational PID manager (object)

process controller[edit]

A basic engineering object providing the functions required for using an execution resource (generically, any computing platform that can host some process) as part of a predefined workflow. A process controller should provide five functions:

process controller functions

Function Description

Type

coordinate process function for controlling the execution resource associated with a given process server
retrieve results functions for retrieving results from an execution resource server
update records provides functions for modifying data on an execution resource, including preparing the resource for the ingestion of bulk data streams server
stage data used to acquire streams of data from data store objects as part of some process. consumer
export asset function provided for retrieving the assets produced by some process producer

Catalogue service correspondences

Viewpoint Correspondence
Science data processing subsystem (role)
compose service (behaviour)
Information process data (action)
Computational process controller

provenance service[edit]

A basic engineering object that supports the ability to publish and search collections of provenance metadata for assets such as data, services, and related information objects managed by a research infrastructure. A provenance service is a specialisation of a catalogue service. A provenance service must provide at least four functionalities: query catalogues, update catalogues, export metadata, and query resource.

Provenance service functions

Function Description

Type

export metadata function for gathering metadata to be exported with assets extracted from the data store objects. server
query catalogues function for querying assets held by the infrastructure, including the retrieval of assets associated with a given persistent identifier. server
update catalogues function for updating of catalogues and the associated data assets. server
invoke resource function for enabling the invocation of other services such as harvesting, exporting data, or automated update. This includes the communication with internal components such as the data store controller for retrieving data. client

Catalogue service correspondences

Viewpoint Correspondence
Science catalogue system (role)
Information track provenance (action)
metadata catalogue (instance of object)
Computational catalogue_service (instance of object)

raw data collector[edit]

A basic engineering object to acquire, package, and transfer raw data produced by acquisition objects. A raw data collector should provide six functions: retrieve asset, update records, export metadata, export asset, deliver asset.

raw data collector functions

Function Description

Type

retrieve asset function provided to enable requesting data from a designated data store (inherited from data transporter). client
update records function provided to inform downstream resources about impending asset transfers (inherited from data transporter). client
acquire identifier function provided for requesting new persistent identifier to be associated with the data being transferred. Generally, identifiers are requested when importing new data into an infrastructure. client
update catalogues function for populating the catalogues with the metadata associated to the imported data assets. client
import asset function provided for retrieving raw data from data acquisition objects consumer
deliver asset function provided for delivery of assets to a designated data store. producer

raw data collector correspondences

Viewpoint Correspondence
Science data acquisition subsystem (role)
data curation subsystem (role)
Computational raw data collector

  1. ENVRIplus. (2016) Deliverable 5.1 A consistent characterisation of existing and planned RIs, ENVRI plus, 24/05/2016, Horizon 2020 Grant Agreement No 654182 http://www.envriplus.eu/wp-content/uploads/2016/06/A-consistent-characterisation-of-RIs.pdf
  2. ENVRIplus. (2017) Deliverable 8.3 Interoperable cataloging and harmonization for environmental RI projects: system design. ENVRI plus, 30/01/2017, Horizon 2020 Grant Agreement No 654182 http://www.envriplus.eu/wp-content/uploads/2015/08/D8.3-Interoperable-cataloging-and-harmonization-for-environmental-RI-projects-system-design.pdf