Difference between revisions of "GCube Model"
Luca.frosini (Talk | contribs) |
Luca.frosini (Talk | contribs) (→Identifier Facet) |
||
Line 683: | Line 683: | ||
| [[#Configuration_Template|Configuration Template]] | | [[#Configuration_Template|Configuration Template]] | ||
| [[#IsIdentifiedBy|IsIdentifiedBy]] | | [[#IsIdentifiedBy|IsIdentifiedBy]] | ||
− | | align=center | 1.. | + | | align=center | 1..1 |
| [[#Identifier_Facet|Identifier Facet]] | | [[#Identifier_Facet|Identifier Facet]] | ||
| ... | | ... | ||
Line 689: | Line 689: | ||
| [[#Configuration|Configuration]] | | [[#Configuration|Configuration]] | ||
| [[#IsIdentifiedBy|IsIdentifiedBy]] | | [[#IsIdentifiedBy|IsIdentifiedBy]] | ||
− | | align=center | 1.. | + | | align=center | 1..1 |
| [[#Identifier_Facet|Identifier Facet]] | | [[#Identifier_Facet|Identifier Facet]] | ||
| ... | | ... | ||
Line 695: | Line 695: | ||
| [[#Dataset|Dataset]] | | [[#Dataset|Dataset]] | ||
| [[#IsIdentifiedBy|IsIdentifiedBy]] | | [[#IsIdentifiedBy|IsIdentifiedBy]] | ||
− | | align=center | 1.. | + | | align=center | 1..1 |
| [[#Identifier_Facet|Identifier Facet]] | | [[#Identifier_Facet|Identifier Facet]] | ||
| ... | | ... | ||
Line 701: | Line 701: | ||
| [[#Concrete_Dataset|Concrete Dataset]] | | [[#Concrete_Dataset|Concrete Dataset]] | ||
| [[#IsIdentifiedBy|IsIdentifiedBy]] | | [[#IsIdentifiedBy|IsIdentifiedBy]] | ||
− | | align=center | 1.. | + | | align=center | 1..1 |
| [[#Identifier_Facet|Identifier Facet]] | | [[#Identifier_Facet|Identifier Facet]] | ||
| ... | | ... | ||
Line 707: | Line 707: | ||
| [[#Site|Site]] | | [[#Site|Site]] | ||
| [[#IsIdentifiedBy|IsIdentifiedBy]] | | [[#IsIdentifiedBy|IsIdentifiedBy]] | ||
− | | align=center | 1.. | + | | align=center | 1..1 |
| [[#Identifier_Facet|Identifier Facet]] | | [[#Identifier_Facet|Identifier Facet]] | ||
| ... | | ... |
Revision as of 16:01, 2 March 2021
gCube Model is a resource model built on top of IS Model which captures the different aspects of the resources and their relations playing significant roles in a research infrastructure empowered by gCube.
Disclaimer
This Model is part of research conducted in the context of a PhD. This wiki page represents just a partial view of the full rationale of the research. To have a complete overview of the rationale of the model, please refer to the PhD thesis which is publicly available at:
https://etd.adm.unipi.it/t/etd-05102019-114151/
https://openportal.isti.cnr.it/doc?id=people______::470484e51fcb9e307a418c800efc44c8
If you need to refer to such work you can cite the PhD Thesis.
BibText:
@phdthesis{frosini2019transactional, title={Transactional REST Information System for Federated Research Infrastructures enabling Virtual Research Environments}, author={Frosini, Luca}, year={2019}, school={UNIVERSIT{\`A} DI PISA} }
An previous paper about this work is:
BibText:
@article{frosini2018facet, title={A Facet-based Open and Extensible Resource Model for Research Data Infrastructures.}, author={Frosini, Luca and Pagano, Pasquale}, journal={Grey Journal (TGJ)}, volume={14}, number={2}, year={2018} }
Overview of gCube Model Resources and (isRelatedTo) Relations
gCube Model Properties
GCubeProperty
Goal: Marker type for any properties extended in the gCube Model. | ||||
Name | Type | Attributes | Description | |
---|---|---|---|---|
This type does not define any additional attributes. |
The Java Interface declaration for such a type is available at:
ValueSchema
This type aims at exposing a value which can be automatically managed by any client with no knowledge of its format.
Name | Type | Attributes | Description |
---|---|---|---|
value | String | Mandatory=true NotNull=true
|
The value which schema is available at the URI provided in the schema property |
schema | URI | Mandatory=true NotNull=true
|
An URI containing a schema used to validate/interpret the content of the value. It is only an informative field. The validation is charge of the client. |
The client can retrieve the schema at the provided URI, i.e., schema property, and use its content to understand/validate/manipulate the information contained in the value property. The client must have the capability to understand the semantics of content retrieved at the URI endpoint. Examples of application of such type are eXtensible Markup Language (XML) values which can be validated by a Document Type Definition (DTD) or XML Schema Definition (XSD).
The Java Interface declaration for such a type is available at:
AccessPolicy
Name | Type | Attributes | Description |
---|---|---|---|
policy | Property (i.e. ValueSchema) | ||
note | String |
Facets
Access Point Facet
Goal: This facet captures information on an 'access point' of a resource, i.e., any web-based endpoint to programmatically interact with the resource via a known protocol. For example, it is used to define the network endpoint to contact the service. The endpoint can expose a well-known high-level protocol. For example, it is used to define the network endpoint to contact the service. The endpoint can expose a well-known high-level protocol. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
entryName | String | A distinguishing string to be used by clients to identify the access point of interest. | ||
endpoint | URI | Mandatory=true ReadOnly=true NotNull=true
|
The URI which characterises the specific endpoint instance. | |
protocol | String | The high-level protocol used by the access point. The String could contain the version if needed. e.g., Web Map Service (WMS) and not HyperText Transfer Protocol (HTTP) which is already contained in the URI. | ||
description | String | A human oriented text accompanying the access point. | ||
authorization | Property | Contains authorisation information. e.g., a token, the couple username:password, etc. | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Dataset | ConsistsOf | 0..n | Access Point Facet | Each access point captures a possible web-based method for accessing the dataset. Any embargo-related information can be captured by the access policy property of the ConsistsOf. |
Concrete Dataset | ConsistsOf | 1..n | Access Point Facet | Each access point captures a possible web-based method for accessing the dataset. Any embargo-related information can be captured by the access policy property of the ConsistsOf. |
EService | ConsistsOf | 1..n | Access Point Facet | Each access point captures a possible web-based method for accessing the service. |
Software | ConsistsOf | 1..n | Access Point Facet | Each access point captures a possible web-based method for accessing a software manifestation. Examples are links to maven artifact on nexus, javadoc, wiki, svn, etc. |
Capability Facet
Goal: This facet captures a defined facility for performing a specified task supported by a given Service or Software; | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
name | String | Mandatory=true ReadOnly=true NotNull=true
|
The distinguishing name of the capability. | |
description | String | A human oriented description of the capability. | ||
qualifier | String | A string used to specialize the capability. | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Service | HasCapability | 0..n | Capability Facet | To capture one of the facilities supported by the Service. |
Software | HasCapability | 0..n | Capability Facet | To capture one of the facilities supported by the Software. |
Contact Facet
Goal: This facet captures information on a point of contact for the resource, i.e. a person or a department serving as the coordinator or focal point of information concerning the resource. As you can see in the known usages part, there are diverse points of contact that can be associated to a given resource and the role of the association is captured by using a specific relation. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
title | String | Mandatory=false
|
A name describing the profession or marital status of the point of contact. E.g. Dr, Mrs, Mr. | |
name | String | Mandatory=true NotNull=true
|
First Name | |
middleName | String | Mandatory=false
|
Middle Name | |
surname | String | Mandatory=true NotNull=true
|
Surname | |
String | Mandatory=true NotNull=true Regex=^[a-z0-9._%+-]{1,128}@[a-z0-9.-]{1,128}
|
A restricted range of RFC‑822 compliant email address. Please note that just domain based email address are accepted (not IP based). Please also note that new TLD are also accepted (e.g luca@google without .com which is a valid email address). You can test here the provided regular expression with your input email address https://regex101.com/ before open a ticket. | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Actor | IsIdentifiedBy | 1..n | Contact Facet | An Actor must have at least a primary point of contact which will be used for identification purposes. |
Actor | HasContact | 0..n | Contact Facet | An Actor can have an arbitrary number of points of contact which provide secondary contact information. |
Legal Body | IsIdentifiedBy | 1..n | Contact Facet | A Legal Body must have at least a point of contact which permit to identify the Legal Body per se. |
Person | IsIdentifiedBy | 1..n | Contact Facet | A Person must have at least a point of contact which permit to identify the Person per se. |
Dataset | HasContact | 1..n | Contact Facet | A Dataset must have at least a point of contact to be used to acquire information on it. |
Dataset | HasContributor | 0..n | Contact Facet | One of the dataset contributors. |
Dataset | HasCreator | 0..n | Contact Facet | One of the dataset creators. |
Dataset | HasCurator | 0..n | Contact Facet | One of the dataset curators. |
Dataset | HasMaintainer | 0..n | Contact Facet | One of the dataset maintainers. |
Dataset | HasOwner | 0..n | Contact Facet | One of the dataset owners. |
Concrete Dataset | HasMaintainer | 1..n | Contact Facet | A Concrete Dataset must have at least a Maintainer. |
Schema | HasContact | 1..n | Contact Facet | A Site must have at least a point of contact to be used to acquire information on it. |
Site | HasContact | 1..n | Contact Facet | A Site must have at least a point of contact to be used to acquire information on it. |
Site | HasMaintainer | 1..n | Contact Facet | A Site must have at least a Maintainer. |
Site | HasManager | 1..n | Contact Facet | A Site must have at least a Manager. |
Contact Reference Facet
Goal: This facet captures information on the primary and authoritative contact for the resource it is associated with. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description. | |
website | URL | The main website. | ||
address | String | A physical address. | ||
phoneNumber | String | A phone number. | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Actor | ConsistsOf | 0..n | Contact Reference Facet | The primary contact information for the Actor it is attached to. |
Legal Body | ConsistsOf | 0..n | Contact Reference Facet | The primary contact information for the Legal Body it is attached to. |
Person | ConsistsOf | 0..n | Contact Reference Facet | The primary contact information for the Person it is attached to. |
Coverage Facet
Goal: This facet captures information on the extent of the Resource, i.e. any aspect aiming at capturing an indicator of the amount/area the resource covers be it a geospatial area, a temporal area, or any other "area". | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
value | String | Mandatory=true NotNull=true
|
The amount indicating the "area" covered by the dataset according to the reference schema. | |
schema | URI | Mandatory=true NotNull=true
|
The reference schema to be used to interpret the value. | |
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Dataset | HasCoverage | 1..n | Coverage Facet | ... |
Dataset | HasTemporalCoverage | 0..n | Coverage Facet | Any temporal coverage characterising the dataset content. |
Dataset | HasSpatialCoverage | 0..n | Coverage Facet | Any spatial coverage characterising the dataset content. |
CPU Facet
Goal: This facet captures information on the Central Processing Unit of the resource it is associated. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
model | String | Mandatory=true NotNull=true
|
CPU Model. | |
vendor | String | Mandatory=true NotNull=true
|
CPU Vendor. | |
clockSpeed | String | Mandatory=true NotNull=true
|
Clock Speed with the unit. | |
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Hosting Node | ConsistsOf | 1..n | CPU Facet | ... |
Descriptive Metadata Facet
Goal: This facet captures information on descriptive metadata to be associated with the resource. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
value | String | Mandatory=true NotNull=true
|
A metadata record representing the descriptive metadata and encoded according to the reference schema; | |
schema | URI | Mandatory=true NotNull=true
|
The reference schema to be used to interpret the value attribute; | |
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Dataset | ConsistsOf | 0..n | Descriptive Metadata Facet | ... |
Schema | ConsistsOf | 0..n | Descriptive Metadata Facet | ... |
Event Facet
Goal: This facet captures information on a certain event / happening characterising the life cycle of the resource. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
date | Calendar | Mandatory=true NotNull=true
|
The time the event took place / occurred. | |
value | String | Mandatory=true NotNull=true
|
The typology of event according to the reference schema. | |
schema | URI | The reference schema to be used to interpret the value describing the event. | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Dataset | ConsistsOf | 0..n | Event Facet | ... |
EService | ConsistsOf | 1..n | Event Facet | E.g. ActivationTime, DeploymentTime. |
Hosting Node | ConsistsOf | 1..n | Event Facet | ... |
Identifier Facet
Goal: This facet captures information on Identifiers (other than the ones automatically generated by the system) that can be attached to a resource. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
value | String | Mandatory=true NotNull=true
|
The identifier. E.g. http://fr.dbpedia.org/resource/Thunnus de305d54-75b4-431b-adb2-eb6b9e546014 | |
type | Enumeration | Mandatory=true NotNull=true
|
The typology of identifier. I.e. URI, DOI, IRI, URL, URN, UUID. | |
isPersistent | boolean | Mandatory=true NotNull=true
|
To indicate whether the Identifier is persistent or not. | |
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Configuration Template | IsIdentifiedBy | 1..1 | Identifier Facet | ... |
Configuration | IsIdentifiedBy | 1..1 | Identifier Facet | ... |
Dataset | IsIdentifiedBy | 1..1 | Identifier Facet | ... |
Concrete Dataset | IsIdentifiedBy | 1..1 | Identifier Facet | ... |
Site | IsIdentifiedBy | 1..1 | Identifier Facet | ... |
License Facet
Goal: This facet captures information on any license associated with the resource to capture the policies governing its exploitation and use. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
name | String | Mandatory=true NotNull=true
|
The common name of the license. E.g. EUPL 1.1, GPLv2, BSD. | |
textURL | URL | Mandatory=true NotNull=true
|
The URL to the actual text of the license. | |
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Dataset | ConsistsOf | 0..n | License Facet | The duration of license - if any - can be captured by the expiry date defined in the ConsistsOf relation. |
EService | ConsistsOf | 0..n | License Facet | ... |
Software | ConsistsOf | 1..n | License Facet | ... |
Location Facet
The goal of this facet is to collect information about Location
Goal: This facet captures information on a physical area characterising the resource it is associated with. This should not be confused with Coverage Facet. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
country | String | The English name of the country. See [1]. | ||
location | String | The City name. | ||
latitude | String | Latitude. | ||
longitude | String | Longitude. | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Site | ConsistsOf | 1..n | Location Facet | The base where the site is operated. |
Memory Facet
Goal: This facet captures information on computer memory equipping the resource and its usage. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
size | Long | Mandatory=true NotNull=true
|
Total amount of memory. | |
used | Long | Mandatory=true NotNull=true
|
Used amount of memory. | |
unit | Enum | Mandatory=true NotNull=true
|
The unit of measure used to report size and used attributes. Allowed values are Byte, kB (kilobyte 10^3), MB (megabyte 10^6), GB (gigabyte 10^9), TB (terabyte 10^12), PB (petabyte 10^15), EB (exabyte 10^18), ZB (zettabyte 10^21), YB (yottabyte 10^24). | |
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Hosting Node | HasPersistentMemory | 1..n | Memory Facet | The Disk Space allocated to the hosting node. |
Hosting Node | HasVolatileMemory | 1..n | Memory Facet | The RAM allocated to the hosting node. |
Networking Facet
Goal: This facet captures information on any (computer) network interface/access point associated with the resource. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
hostName | String | Host Name. | ||
domainName | String | Domain Name. | ||
IPAddress | String | Mandatory=true
|
IP Address. Validation regular expression ca be foun at http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses#answer-1934546 (Michael Rushton solution). | |
mask | String | Network Mask. | ||
broadcastAddress | String | Broadcast Address. | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Hosting Node | IsIdentifiedBy | 1..n | Networking Facet | ... |
Site | ConsistsOf | 1..n | Networking Facet | ... |
Provenance Facet
Goal: This facet captures information on provenance/lineage of the entire resource. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
relationship | Enum | I.e. wasDerivedFrom, wasGeneratedBy | ||
reference | String | resourceID (a reference to the "originator" Resource associated to the resource the facet is attached to by the relationship) | ||
document | String | Provenance Document E.g. the xml format | ||
documentSchema | URI | Document Schema E.g. a reference to the format | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Dataset | ConsistsOf | 0..n | Provenance Facet |
Schema Facet
Goal: This facet captures information on any schema associated with a resource. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
name | String | Mandatory=true NotNull=true
|
Schema Name | |
description | String | Mandatory=true NotNull=true
|
Schema Description | |
schemaURL | URL | Schema definition URL (recommended) | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Schema | IsIdentifiedBy | 1..n | Schema Facet |
Even is still under standardization (seems stalled) IETF is promoting a de-facto standard for JSON http://json-schema.org/. https://tools.ietf.org/html/draft-zyp-json-schema-04 https://tools.ietf.org/html/draft-fge-json-schema-validation-00 https://tools.ietf.org/html/draft-luff-json-hyper-schema-00
Simple Facet
Please do not use this Facet. Create your own type.
Goal: This facet is used by IS-Exporter to export old GenericResource as Configuration | ||||
Properties | ||||
---|---|---|---|---|
No property defined | ||||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Configuration | ConsistsOf | 1..n | Simple Facet | Used by IS-Exporter to export old GenericResource as Configuration |
Simple Property Facet
Goal: This facet captures information on any property by a simple name-value pair. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
name | String | Mandatory=true NotNull=true
|
Name | |
value | String | Mandatory=true NotNull=true
|
Value | |
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Configuration Template | ConsistsOf | 1..n | Simple Property Facet | |
Hosting Node | ConsistsOf | 0..n | Simple Property Facet | E.g. to model Environment Variables |
Software Facet
Goal: This facet captures information on any software associated with the resource. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
name | String | Mandatory=true NotNull=true
|
The name of the software artefact being described. E.g. artifactId in maven, Service Name in gCube software, the software name for retail software Microsoft Office 2013-SP2. | |
group | String | Mandatory=true NotNull=true
|
The name of "group" the software artefact belongs to. E.g. groupId in Maven, ServiceClass in gCube software, company name for retail software Microsoft Office 2013-SP2. | |
version | String | Mandatory=true NotNull=true
|
The particular release of the software artefact. E.g. maven version, Service Version in gCube software, artifactId in maven, the software version for retail software Microsoft Office 2013-SP2. | |
description | String | A human oriented description of the software artefact being described. | ||
qualifier | String | E.g. packaging or scope in maven, scope level or sharable level in gCube software, target architecture for retail software x86 or amd64. | ||
optional | Boolean | E.g. used to indicate an optional dependency both in maven as far as in gCube. | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
EService | IsIdentifiedBy | 1..n | Software Facet | The software enabling the EService capabilities |
EService | ConsistsOf | 0..n | Software Facet | Software available in the EService environment that characterizes the specific EService instance. |
Running Plugin | IsIdentifiedBy | 1..1 | Software Facet | The software enabling the Running Plugin. |
Hosting Node | ConsistsOf | 0..n | Software Facet | E.g. to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System. |
Virtual Service | IsIdentifiedBy | 1..n | Software Facet | |
Software | IsIdentifiedBy | 1..n | Software Facet | Software coordinates which identify the Software per se. |
Software | ConsistsOf | 1..n | Software Facet | Any other software apart from the one connected with IsIdentifiedBy relation (gCube coordinates). |
Plugin | IsIdentifiedBy | 1..n | Software Facet | Software coordinates which identify the Plugin per se. |
State Facet
The goal of this facet is to ...
Goal: This facet captures information on state to be associated with the resource. State is captured by any controlled vocabulary which is an integral part of the facet. | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
value | String | Mandatory=true NotNull=true
|
The value of the state expressed according to the schema below; | |
schema | URI | Mandatory=true NotNull=true
|
The schema that have been used to assign the state value and that must be used to properly interpret it; | |
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Hosting Node | ConsistsOf | 1..1 | State Facet | The current state of the Hosting Node, e.g. started, ready, certified, down, failed. |
EService | ConsistsOf | 1..1 | State Facet | The current status of the EService, e.g. started, ready, down, failed. |
Software | ConsistsOf | 1..n | State Facet | E.g. Deprecated, Active, Obsolete |
Subject Facet
Goal: This facet captures information on subjects associated with the resource for description, classification and discovery purposes; | ||||
Properties | ||||
---|---|---|---|---|
Name | Type | Attributes | Description | |
value | String | Mandatory=true NotNull=true
|
The value of the subject. Must be compliant with schema. | |
schema | URI | Mandatory=true NotNull=true
|
The URI of the schema subject value comes from. It is only an informative field. It is not used for validation from IS part. | |
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Dataset | ConsistsOf | 0..n | Subject Facet | |
Schema | ConsistsOf | 0..n | Subject Facet |
Relations
isRelatedTo
Activates
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Service | Activates | 0..n | Service | ... |
BelongsTo
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Person | BelongsTo | 0..n | Legal Body | ... |
CallsFor
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Service | CallsFor | 0..n | Service |
Discovers
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
EService | Discovers | 0..n | EService |
Uses
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
EService | Uses | 0..n | EService |
Demands
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Virtual Service | Demands | 0..n | Software |
DependsOn
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Software | DependsOn | 0..n | Software |
IsPluginOf
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Plugin | IsPluginOf | 1..n | Software |
Enables
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Service | Enables | 0..n | Software |
Hosts
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Site | Hosts | 0..n | Service |
Involves
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Dataset | Involves | 0..n | Actor |
IsCompliantWith
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Dataset | IsCompliantWith | 0..n | Schema |
IsConfiguredBy
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Software | IsConfiguredBy | 0..n | Configuration Template |
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Dataset | IsCorrelatedTo | 0..n | Dataset |
IsPartOf
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Concrete Dataset | IsPartOf | 0..n | Dataset |
IsCustomizedBy
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Service | IsCustomizedBy | 0..n | Configuration Template |
IsDerivationOf
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Configuration | IsDerivationOf | 1..1 | Configuration Template |
IsOwnedBy
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Site | IsOwnedBy | 0..n | Actor |
Manages
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Service | Manages | 0..n | Dataset |
Requires
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Software | Requires | 0..n | Service |
ConsistsOf
IsIdentifiedBy
HasCapability
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasCapability | 0..n | Capability Facet | |
Known Usage | ||||
Service | HasCapability | 0..n | Capability Facet | |
Software | HasCapability | 0..n | Capability Facet |
HasContact
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasContact | 0..n | Contact Facet | |
Known Usage | ||||
Dataset | HasContact | 1..n | Contact Facet | ... |
HasContributor
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasContributor | 0..n | Contact Facet | |
Known Usage | ||||
Dataset | HasContributor | 0..n | Contact Facet | Is he the contributor |
HasCreator
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasCreator | 0..n | Contact Facet | |
Known Usage | ||||
Dataset | HasCreator | 0..n | Contact Facet | Is he the creator |
HasCurator
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasCurator | 0..n | Contact Facet | |
Known Usage | ||||
Dataset | HasCurator | 0..n | Contact Facet | Is he the curator |
HasDeveloper
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasDeveloper | 0..n | Contact Facet | |
Known Usage |
HasMaintainer
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasMaintainer | 0..n | Contact Facet | |
Known Usage | ||||
Dataset | HasMaintainer | 0..n | Contact Facet | Is he the maintainer |
HasManager
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasManager | 0..n | Contact Facet | |
Known Usage |
HasOwner
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasOwner | 0..n | Contact Facet | |
Known Usage | ||||
Dataset | HasOwner | 0..n | Contact Facet | Is he the owner |
HasCoverage
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasCoverage | 0..n | Coverage Facet | ... |
Known Usage | ||||
Dataset | HasCoverage | 1..n | Coverage Facet | ... |
HasSpatialCoverage
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasSpatialCoverage | 0..n | Coverage Facet | ... |
Known Usage | ||||
Dataset | HasSpatialCoverage | 0..n | Coverage Facet | ... |
HasTemporalCoverage
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasTemporalCoverage | 0..n | Coverage Facet | ... |
Known Usage | ||||
Dataset | HasTemporalCoverage | 0..n | Coverage Facet | ... |
HasMemory
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasMemory | 0..n | Memory Facet | ... |
HasPersistentMemory
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasPersistentMemory | 0..n | Memory Facet | ... |
Known Usage | ||||
Hosting Node | HasPersistentMemory | 1..n | Memory Facet | Disk Space |
HasVolatileMemory
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Definition | ||||
Resource | HasVolatileMemory | 0..n | Memory Facet | ... |
Known Usage | ||||
Hosting Node | HasVolatileMemory | 1..n | Memory Facet | RAM |
Resources
Every Resource has:
A class can be identified as Abstract
. This means that cannot be instantiated. It is expected that one of its specializations are instantiated.
It is not required that an Abstract class establishes an IsIdentifiedBy relation with a Facet.
Actor
Scope: Any entity (human or machine) playing an active role. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Actor | IsIdentifiedBy | 1..1 | Contact Facet | An Actor has at least a Contact Facet which permit to identify the Actor per se. |
Actor | HasContact | 0..n | Contact Facet | An Actor can have other Contact Facets which provide secondary contact information. |
Actor | ConsistsOf | 0..n | Contact Reference Facet | ... |
Relations | ||||
Dataset | Involves | 0..n | Actor | ... |
Site | IsOwnedBy | 0..n | Actor | ... |
Legal Body
Scope: A legal entity playing the role of an Actor. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Legal Body | IsIdentifiedBy | 1..1 | Contact Facet | A Legal Body has at least a Contact Facet which permit to identify the Legal Body per se. |
Legal Body | ConsistsOf | 0..n | Contact Reference Facet | ... |
Relations | ||||
Person | BelongsTo | 0..n | Legal Body | ... |
Person
Scope: Any human playing the role of Actor. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Person | IsIdentifiedBy | 1..1 | Contact Facet | A Person has at least a Contact Facet which permit to identify the Person per se. |
Person | ConsistsOf | 0..n | Contact Reference Facet | ... |
Relations | ||||
Person | BelongsTo | 0..n | Legal Body | ... |
Configuration Template
Scope: It represents a template for a configuration. It describe how a configuration has to be realized. E.g. Used to define the accounting configuration parameters template. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Configuration Template | IsIdentifiedBy | 1..1 | Identifier Facet | ... |
Configuration Template | ConsistsOf | 1..n | Simple Property Facet | ... |
Relations | ||||
Configuration | IsDerivationOf | 1..1 | Configuration Template | ... |
Service | IsCustomizedBy | 0..n | Configuration Template | ... |
Software | IsConfiguredBy | 0..n | Configuration Template | ... |
Configuration
Scope: An instance of a configuration template characterising the behaviour and shape of the resource it is attached to. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Configuration | IsIdentifiedBy | 1..1 | Identifier Facet | ... |
Configuration | ConsistsOf | 0..n | Simple Facet | Used by IS-Exporter to export old GenericResource as Configuration |
Relations | ||||
Configuration | IsDerivationOf | 1..1 | Configuration Template | ... |
Dataset
Scope: Any set of digital objects representing data and treated collectively as a unit. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Dataset | IsIdentifiedBy | 1..1 | Identifier Facet | The set of Identifiers associated with the Dataset instance. |
Dataset | HasContact | 1..n | Contact Facet | The contact information of the entity responsible for the dataset. |
Dataset | HasContributor | 0..n | Contact Facet | The contact information on contributors supporting the creation and development of the Dataset. |
Dataset | HasCreator | 0..n | Contact Facet | The contact information of the creator of the Dataset. |
Dataset | HasCurator | 0..n | Contact Facet | The contact information of the entity responsible for the curation of the dataset. |
Dataset | HasMaintainer | 0..n | Contact Facet | The contact information of the entity responsible for the maintenance of the dataset. |
Dataset | HasOwner | 0..n | Contact Facet | The contact information of the entity having the ownership of the dataset. |
Dataset | ConsistsOf | 0..n | Access Point Facet | The access point to use for having access to the dataset. The embargoState can be modeled through the access policy defined in the ConsistsOf relation. |
Dataset | ConsistsOf | 0..n | License Facet | The licence governing dataset exploitation. The duration of license (if any) is captured by the expiry date defined in the ConsistsOf relation. |
Dataset | ConsistsOf | 0..n | Event Facet | Any "event" characterising the lifecycle of the dataset, e.g. collection date, last collection date. |
Dataset | ConsistsOf | 0..n | Provenance Facet | Any provenance record associated with the dataset. |
Dataset | HasCoverage | 1..n | Coverage Facet | Any coverage related information (e.g. topic, species) characterising the content of the dataset. |
Dataset | HasTemporalCoverage | 0..n | Coverage Facet | Any temporal coverage information characterising the content of the dataset, e.g. the time-span covered by the dataset. |
Dataset | HasSpatialCoverage | 0..n | Coverage Facet | Any geo-spatial coverage information characterising the content of the dataset, e.g. the area covered by the dataset. |
Dataset | ConsistsOf | 0..n | Descriptive Metadata Facet | Any descriptive information associated with the dataset, e.g. for discovery purposes. |
Dataset | ConsistsOf | 0..n | Subject Facet | Any subject / tag associated with the dataset for descriptive and discovery purposes. |
Relations | ||||
Dataset | Involves | 0..n | Actor | ... |
Dataset | IsCorrelatedTo | 0..n | Dataset | ... |
Dataset | IsCompliantWith | 0..n | Schema | Any schema characterising the content of the dataset, e.g. the schema describing the 'columns' of a CSV-based dataset. |
Concrete Dataset | IsPartOf | 0..n | Dataset | The reference to the 'incarnations' / 'manifestations' contributing to a dataset. |
Service | Manages | 0..n | Dataset | The link between the service that 'Manages' the dataset and the dataset, e.g. the service that Hosts the dataset and give access to it. |
Concrete Dataset
Scope: Any incarnation / manifestation of a dataset or part of it. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Concrete Dataset | IsIdentifiedBy | 1..1 | Identifier Facet | The set of Identifiers associated with the Concrete Dataset instance. |
Concrete Dataset | HasMaintainer | 1..n | Contact Facet | The contact information of the entity responsible for the maintenance of the concrete dataset. |
Concrete Dataset | ConsistsOf | 1..n | Access Point Facet | The access point to use for having access to the concrete dataset. The embargoState can be modeled through the access policy defined in the ConsistsOf relation. |
Relations | ||||
Concrete Dataset | IsPartOf | 0..n | Dataset | The reference to the Dataset the instance manifests / contribute to manifest. |
Schema
Scope: Any reference schema to be used to specify values compliant with it. Examples include controlled vocabularies, ontologies, etc. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Schema | IsIdentifiedBy | 1..1 | Schema Facet | ... |
Schema | HasContact | 1..n | Contact Facet | ... |
Schema | ConsistsOf | 0..n | Descriptive Metadata Facet | ... |
Schema | ConsistsOf | 0..n | Subject Facet | ... |
Relations | ||||
Dataset | IsCompliantWith | 0..n | Schema | ... |
Service
Scope: An abstract entity to represent any typology of Service worth registering in the infrastructure. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Service | IsIdentifiedBy | 1..1 | Facet | Any facet instance useful for identification purposes. |
Service | ConsistsOf | 0..n | Descriptive Metadata Facet | Any descriptive information associated with the service, e.g. for discovery purposes. |
Service | ConsistsOf | 0..n | Subject Facet | Any subject / tag associated with the service for descriptive, cataloguing and discovery purposes. |
Service | HasCapability | 0..n | Capability Facet | Any facility supported/offered by the Service. |
Relations | ||||
Service | CallsFor | 0..n | Service | A reference to the Services needed by the target instance to work. |
Service | Activates | 0..n | Service | The source Service Enables the target Service to be running. Examples are an Hosting Node which Enables an EService; A Virtual Machine enabling an EService or an Hosting Node; An EService enabling a Running Plugin etc. |
Service | IsCustomizedBy | 0..n | Configuration Template | A reference to any configuration characterising the Service behaviour. |
Service | Manages | 0..n | Dataset | A reference to any Dataset resource managed by the Service instance. |
Service | Enables | 0..n | Software | A reference to any Software the Service is enabling (i.e. the Software is running throught the EService) |
Software | Requires | 0..n | Service | A reference to any Service needed by a Software to properly operate, e.g. this can be used to capture a sort of run-time requirements between a software component and the Service it needs. |
EService
Scope: Any Electronic Service (aka Running Service) that is registered in the infrastructure and made available by an Access Point. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
EService | IsIdentifiedBy | 1..1 | Software Facet | The main software enabling the EService capabilities. |
EService | ConsistsOf | 0..n | Software Facet | Software available in the EService environment that characterizes the specific EService instance. |
EService | ConsistsOf | 1..n | Access Point Facet | Identify the endpoints of the EService. |
EService | ConsistsOf | 1..n | Event Facet | Events characterising the current status and lifecycle of the service, e.g. ActivationTime, DeploymentTime. |
EService | ConsistsOf | 1..1 | State Facet | The current status of the EService, e.g. started, ready, down, failed. |
EService | ConsistsOf | 0..n | License Facet | The specific terms of use governing the exploitation of the EService. |
Relations | ||||
EService | Discovers | 0..n | EService | A reference to any other EService, the EService instance is discovering through query on IS. |
EService | Uses | 0..n | EService | A reference to any other EService, the EService instance is invoking. |
Running Plugin
Scope: Any instance of a Plugin deployed and running by an EService. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Running Plugin | IsIdentifiedBy | 1..1 | Software Facet | The software enabling the Running Plugin. |
Relations |
Hosting Node
Scope: The HostingNode represent a container capable of managing the lifecycle of an electronic service, i.e., being capable to host and operate an EService. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Hosting Node | IsIdentifiedBy | 1..1 | Networking Facet | The Network ID characterising the Hosting Node. |
Hosting Node | ConsistsOf | 1..n | CPU Facet | The CPU equipping the Hosting Node. |
Hosting Node | HasPersistentMemory | 1..n | Memory Facet | The Disk Space Capacity of the Hosting Node. |
Hosting Node | HasVolatileMemory | 1..n | Memory Facet | The RAM Capacity of the Hosting Node. |
Hosting Node | ConsistsOf | 1..n | Event Facet | Every event characterizing the life cycle of the Hosting Node, e.g. the activation time. |
Hosting Node | ConsistsOf | 1..1 | State Facet | The current state of the Hosting Node, e.g. started, ready, certified, down, failed. |
Hosting Node | ConsistsOf | 0..n | Simple Property Facet | Any <key, value> pair property worth associating with the Hosting Node, e.g. Environment Variables. |
Hosting Node | ConsistsOf | 0..n | Software Facet | Any Software characterising the Hosting Node. Useful to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System. |
Relations |
Virtual Machine
Scope: A Virtual Machine is an emulation of a physical computer which appears to the running operative system as real hardware. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Virtual Machine | IsIdentifiedBy | 1..1 | Networking Facet | The Network ID characterising the Virtual Machine. |
Relations |
Virtual Service
Scope: An abstract service (non physically existing service) worth being represented as an existing Service for management purposes. Examples of usage include cases where classes or set of services are to be managed like an existing unit. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Virtual Service | IsIdentifiedBy | 1..1 | Software Facet | ??? |
Relations | ||||
Virtual Service | Demands | 0..n | Software | ... |
Site
Scope: An entity representing the location (physical or virtual) hosting and providing the resources associated with it. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Site | IsIdentifiedBy | 1..1 | Identifier Facet | The Site Identifier. |
Site | HasContact | 1..n | Contact Facet | The main contact for the Site. |
Site | HasMaintainer | 1..n | Contact Facet | Contact information of the maintainer of the Site. |
Site | HasManager | 1..n | Contact Facet | Contact information of the Site Manager. |
Site | ConsistsOf | 1..n | Location Facet | ... |
Site | ConsistsOf | 1..n | Networking Facet | ... |
Relations | ||||
Site | IsOwnedBy | 0..n | Actor | ... |
Site | Hosts | 0..n | Service | ... |
Software
Scope: Any Software entity worth being represented for management purposes. | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Software | IsIdentifiedBy | 1..1 | Software Facet | Software coordinates which identify the Software per se. |
Software | ConsistsOf | 1..n | Software Facet | Apart the one connected by the IsIdentifiedBy relation (gCube coordinates) the others identify the sw in other way e.g. (Maven coordinates). |
Software | ConsistsOf | 1..n | Access Point Facet | Links to maven artifact on nexus, javadoc, wiki, svn ... |
Software | ConsistsOf | 1..n | License Facet | The Software License characterizing its possible exploitation and use. |
Software | ConsistsOf | 1..n | State Facet | The state characterising the software, e.g. Deprecated, Active, Obsolete. |
Software | HasCapability | 0..n | Capability Facet | ... |
Relations | ||||
Software | DependsOn | 0..n | Software | To capture any dependency between two software artifacts. |
Software | IsConfiguredBy | 0..n | Configuration Template | E.g. Accounting Sw uses it to discover the configuration. |
Software | Requires | 0..n | Service | to capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database. |
Virtual Service | Demands | 0..n | Software | ... |
Plugin | IsPluginOf | 0..n | Software | To capture the relation between a Software and its Plugins. |
Plugin
Scope: A piece of Software extending the capabilities of another Software (main) and requiring the main Software to be executed; | ||||
Source | Relation | Multiplicity | Target | Description |
---|---|---|---|---|
Facets | ||||
Plugin | IsIdentifiedBy | 1..n | Software Facet | Software coordinates which identify the Plugin per se. |
Relations | ||||
Plugin | IsPluginOf | 1..n | Software | A reference to the Software this Plugin is conceived to extend the capabilities. |
Extension Example
The gCube Resource Model supports extensions at runtime meaning that new facets, relations, and resources can be defined and registered at any time by authorized clients. Those extensions must necessarily specialize an existing gCube Entity. An example of those specializations is the following:
Functionality Related Facet
The goal of this facet is to capture what are the facilities supported by the Service Entity and it aims to model the service interface.
Name | Type | Attributes | Description | |
---|---|---|---|---|
name | String | ... | ||
description | String | ... | ||
input | String | ... | ||
output | String | ... | ||
Known Usage | ||||
Source | Relation | Multiplicity | Target | Description |
Service | ConsistsOf | 0..n | Functionality Related Facet | ... |