Added cross-references to documentation

This commit is contained in:
Luca Frosini 2023-05-12 14:59:25 +02:00
parent 7cbb1754e5
commit 89c291c0c3
9 changed files with 1895 additions and 1648 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,12 @@
.. _Property:
Property Property
======== ========
.. _GCubeProperty:
GCubeProperty GCubeProperty
------------- -------------
@ -25,6 +29,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _AccessPolicy:
AccessPolicy AccessPolicy
^^^^^^^^^^^^ ^^^^^^^^^^^^
@ -33,13 +39,13 @@ AccessPolicy information
.. table:: **AccessPolicy** ``extends`` **GCubeProperty** .. table:: **AccessPolicy** ``extends`` **GCubeProperty**
+--------+-------------+----------------------------------------------------------+-------------+ +--------+----------------------------------+----------------------------------------------------------+-------------+
| Name | Type | Attributes | Description | | Name | Type | Attributes | Description |
+========+=============+==========================================================+=============+ +========+==================================+==========================================================+=============+
| note | String | ``Mandatory:false`` ``ReadOnly:false`` ``NotNull:false`` | | | note | String | ``Mandatory:false`` ``ReadOnly:false`` ``NotNull:false`` | |
+--------+-------------+----------------------------------------------------------+-------------+ +--------+----------------------------------+----------------------------------------------------------+-------------+
| policy | ValueSchema | ``Mandatory:false`` ``ReadOnly:false`` ``NotNull:false`` | | | policy | :ref:`ValueSchema <ValueSchema>` | ``Mandatory:false`` ``ReadOnly:false`` ``NotNull:false`` | |
+--------+-------------+----------------------------------------------------------+-------------+ +--------+----------------------------------+----------------------------------------------------------+-------------+
The **AccessPolicy** current version is 1.0.0. The **AccessPolicy** current version is 1.0.0.
@ -49,6 +55,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _EnumStringProperty:
EnumStringProperty EnumStringProperty
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
@ -71,6 +79,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _RegexProperty:
RegexProperty RegexProperty
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
@ -95,6 +105,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _ValueSchema:
ValueSchema ValueSchema
^^^^^^^^^^^ ^^^^^^^^^^^

View File

@ -1,8 +1,12 @@
.. _Resource:
Resource Resource
======== ========
.. _GCubeResource:
GCubeResource GCubeResource
------------- -------------
@ -11,17 +15,17 @@ Marker type for any gCube Resource extended in the gCube model.
.. table:: **GCubeResource** ``extends`` **Resource** .. table:: **GCubeResource** ``extends`` **Resource**
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+ +-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+=======================================================+================+==============+========+==============================================================================================+ +=======================================================+========================================+==============+======================+==============================================================================================+
| **Facets** | | **Facets** |
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+ +-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| GCubeResource | IsIdentifiedBy | 1..1 | Facet | Any Resource has at least one Facet which in some way allow to identify the Resource per se. | | :ref:`GCubeResource <GCubeResource>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`Facet <Facet>` | Any Resource has at least one Facet which in some way allow to identify the Resource per se. |
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+ +-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+ +-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. | | No specific Resource relations defined for this type. |
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+ +-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
The **GCubeResource** current version is 1.0.0. The **GCubeResource** current version is 1.0.0.
@ -31,29 +35,31 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Actor:
Actor Actor
^^^^^ ^^^^^
Actor (Abstract) is any entity (human or machine) playing an active role in the infrastructure. Actor has two specialisations, {@link LegalBody} which represent any legal entity, and {@link Person} which is any human playing the role of Actor. An Actor can belong to a {@link LegalBody} and this is expressed using the defined {@link BelongsTo} relation. Actor (Abstract) is any entity (human or machine) playing an active role in the infrastructure. Actor has two specialisations, :ref:`LegalBody <LegalBody>` which represent any legal entity, and :ref:`Person <Person>` which is any human playing the role of Actor. An Actor can belong to a :ref:`LegalBody <LegalBody>` and this is expressed using the defined :ref:`BelongsTo <BelongsTo>` relation.
.. table:: **Actor** ``extends`` **GCubeResource** .. table:: **Actor** ``extends`` **GCubeResource**
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+ +--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+=======================+====================================================================================+ +==========================+========================================+==============+======================================================+====================================================================================+
| **Facets** | | **Facets** |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+ +--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| Actor | ConsistsOf | 0..n | ContactReferenceFacet | | | :ref:`Actor <Actor>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`ContactReferenceFacet <ContactReferenceFacet>` | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+ +--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| Actor | IsIdentifiedBy | 1..1 | ContactFacet | An Actor has at least a Contact Facet which permit to identify the Actor per se. | | :ref:`Actor <Actor>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`ContactFacet <ContactFacet>` | An Actor has at least a Contact Facet which permit to identify the Actor per se. |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+ +--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+ +--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| Dataset | Involves | 0..n | Actor | | | :ref:`Dataset <Dataset>` | :ref:`Involves <Involves>` | 0..n | :ref:`Actor <Actor>` | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+ +--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| Site | IsOwnedBy | 0..n | Actor | | | :ref:`Site <Site>` | :ref:`IsOwnedBy <IsOwnedBy>` | 0..n | :ref:`Actor <Actor>` | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+ +--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
The **Actor** current version is 1.0.0. The **Actor** current version is 1.0.0.
@ -63,6 +69,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _LegalBody:
LegalBody LegalBody
""""""""" """""""""
@ -71,17 +79,17 @@ LegalBody represents any legal entity playing the role of an Actor.
.. table:: **LegalBody** ``extends`` **Actor** .. table:: **LegalBody** ``extends`` **Actor**
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+=================================================+===========+==============+===========+=============+ +=================================================+==============================+==============+==============================+=============+
| **Facets** | | **Facets** |
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| No specific facets usage defined for this type. | | No specific facets usage defined for this type. |
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| **Resource Relations** | | **Resource Relations** |
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| Person | BelongsTo | 0..n | LegalBody | | | :ref:`Person <Person>` | :ref:`BelongsTo <BelongsTo>` | 0..n | :ref:`LegalBody <LegalBody>` | |
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
The **LegalBody** current version is 1.0.0. The **LegalBody** current version is 1.0.0.
@ -91,6 +99,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Person:
Person Person
"""""" """"""
@ -99,17 +109,17 @@ Person represents any human playing the role of Actor.
.. table:: **Person** ``extends`` **Actor** .. table:: **Person** ``extends`` **Actor**
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+=================================================+===========+==============+===========+=============+ +=================================================+==============================+==============+==============================+=============+
| **Facets** | | **Facets** |
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| No specific facets usage defined for this type. | | No specific facets usage defined for this type. |
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| **Resource Relations** | | **Resource Relations** |
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| Person | BelongsTo | 0..n | LegalBody | | | :ref:`Person <Person>` | :ref:`BelongsTo <BelongsTo>` | 0..n | :ref:`LegalBody <LegalBody>` | |
+-------------------------------------------------+-----------+--------------+-----------+-------------+ +-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
The **Person** current version is 1.0.0. The **Person** current version is 1.0.0.
@ -119,6 +129,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _ConfigurationTemplate:
ConfigurationTemplate ConfigurationTemplate
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
@ -127,23 +139,23 @@ Configuration Template represents a template for a configuration. It describes h
.. table:: **ConfigurationTemplate** ``extends`` **GCubeResource** .. table:: **ConfigurationTemplate** ``extends`` **GCubeResource**
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+ +------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+=======================+========================================================================+ +======================================================+========================================+==============+======================================================+========================================================================+
| **Facets** | | **Facets** |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+ +------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| ConfigurationTemplate | IsIdentifiedBy | 1..1 | IdentifierFacet | | | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`IdentifierFacet <IdentifierFacet>` | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+ +------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+ +------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| Configuration | IsDerivationOf | 0..n | ConfigurationTemplate | | | :ref:`Configuration <Configuration>` | :ref:`IsDerivationOf <IsDerivationOf>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+ +------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| Service | IsCustomizedBy | 0..n | ConfigurationTemplate | | | :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+ +------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| Service | IsCustomizedBy | 0..n | ConfigurationTemplate | A reference to any configuration characterising the Service behaviour. | | :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | A reference to any configuration characterising the Service behaviour. |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+ +------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| Software | IsConfiguredBy | 0..n | ConfigurationTemplate | | | :ref:`Software <Software>` | :ref:`IsConfiguredBy <IsConfiguredBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+ +------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
The **ConfigurationTemplate** current version is 1.0.0. The **ConfigurationTemplate** current version is 1.0.0.
@ -153,25 +165,27 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Configuration:
Configuration Configuration
""""""""""""" """""""""""""
Configuration is a specialisation of {@link ConfigurationTemplate} and is an instance of a configuration template characterising the behaviour and shape of the resource it is attached to. The Configuration can be related to the template it derives using {@link IsDerivationOf}. Configuration is a specialisation of :ref:`ConfigurationTemplate <ConfigurationTemplate>` and is an instance of a configuration template characterising the behaviour and shape of the resource it is attached to. The Configuration can be related to the template it derives using :ref:`IsDerivationOf <IsDerivationOf>`.
.. table:: **Configuration** ``extends`` **ConfigurationTemplate** .. table:: **Configuration** ``extends`` **ConfigurationTemplate**
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+ +-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+=================================================+================+==============+=======================+=============+ +=================================================+========================================+==============+======================================================+=============+
| **Facets** | | **Facets** |
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+ +-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| No specific facets usage defined for this type. | | No specific facets usage defined for this type. |
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+ +-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| **Resource Relations** | | **Resource Relations** |
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+ +-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| Configuration | IsDerivationOf | 0..n | ConfigurationTemplate | | | :ref:`Configuration <Configuration>` | :ref:`IsDerivationOf <IsDerivationOf>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+ +-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
The **Configuration** current version is 1.0.0. The **Configuration** current version is 1.0.0.
@ -181,65 +195,67 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Dataset:
Dataset Dataset
^^^^^^^ ^^^^^^^
A Dataset is a set of digital objects representing data and treated collectively as a unit. It is the key resource of a HDI, even more, it is the reason the HDI exists. A Dataset can be correlated to another Dataset by using {@link IsCorrelatedTo} relation. A Dataset is a set of digital objects representing data and treated collectively as a unit. It is the key resource of a HDI, even more, it is the reason the HDI exists. A Dataset can be correlated to another Dataset by using :ref:`IsCorrelatedTo <IsCorrelatedTo>` relation.
.. table:: **Dataset** ``extends`` **GCubeResource** .. table:: **Dataset** ``extends`` **GCubeResource**
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+=====================+==============+==========================+=========================================================================================================================================================+ +==========================================+==================================================+==============+============================================================+=========================================================================================================================================================+
| **Facets** | | **Facets** |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | ConsistsOf | 0..n | AccessPointFacet | 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. | | :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`AccessPointFacet <AccessPointFacet>` | 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 | DescriptiveMetadataFacet | Any descriptive information associated with the dataset, e.g. for discovery purposes. | | :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`DescriptiveMetadataFacet <DescriptiveMetadataFacet>` | Any descriptive information associated with the dataset, e.g. for discovery purposes. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | ConsistsOf | 0..n | EventFacet | Any 'event' characterising the lifecycle of the dataset, e.g. collection date, last collection date. | | :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`EventFacet <EventFacet>` | Any 'event' characterising the lifecycle of the dataset, e.g. collection date, last collection date. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | ConsistsOf | 0..n | LicenseFacet | The licence governing dataset exploitation. The duration of license (if any) is captured by the expiry date defined in the consistsOf relation. | | :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`LicenseFacet <LicenseFacet>` | 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 | ProvenanceFacet | Any provenance record associated with the dataset. | | :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`ProvenanceFacet <ProvenanceFacet>` | Any provenance record associated with the dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | ConsistsOf | 0..n | SubjectFacet | Any subject/tag associated with the dataset for descriptive and discovery purposes. | | :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SubjectFacet <SubjectFacet>` | Any subject/tag associated with the dataset for descriptive and discovery purposes. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasContact | 1..n | ContactFacet | The contact information of the entity responsible for the dataset. | | :ref:`Dataset <Dataset>` | :ref:`HasContact <HasContact>` | 1..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for the dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasContributor | 0..n | ContactFacet | The contact information on contributors supporting the creation and development of the Dataset. | | :ref:`Dataset <Dataset>` | :ref:`HasContributor <HasContributor>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information on contributors supporting the creation and development of the Dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasCoverage | 1..n | CoverageFacet | Any coverage related information (e.g. topic, species) characterising the content of the dataset. | | :ref:`Dataset <Dataset>` | :ref:`HasCoverage <HasCoverage>` | 1..n | :ref:`CoverageFacet <CoverageFacet>` | Any coverage related information (e.g. topic, species) characterising the content of the dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasCreator | 0..n | ContactFacet | The contact information of the creator of the Dataset. | | :ref:`Dataset <Dataset>` | :ref:`HasCreator <HasCreator>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the creator of the Dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasCurator | 0..n | ContactFacet | The contact information of the entity responsible for the curation of the dataset. | | :ref:`Dataset <Dataset>` | :ref:`HasCurator <HasCurator>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for the curation of the dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasMaintainer | 0..n | ContactFacet | The contact information of the entity responsible for the maintenance of the dataset. | | :ref:`Dataset <Dataset>` | :ref:`HasMaintainer <HasMaintainer>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for the maintenance of the dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasOwner | 0..n | ContactFacet | The contact information of the entity having the ownership of the dataset. | | :ref:`Dataset <Dataset>` | :ref:`HasOwner <HasOwner>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity having the ownership of the dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasSpatialCoverage | 0..n | CoverageFacet | Any geo-spatial coverage information characterising the content of the dataset, e.g. the area covered by the dataset. | | :ref:`Dataset <Dataset>` | :ref:`HasSpatialCoverage <HasSpatialCoverage>` | 0..n | :ref:`CoverageFacet <CoverageFacet>` | Any geo-spatial coverage information characterising the content of the dataset, e.g. the area covered by the dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasTemporalCoverage | 0..n | CoverageFacet | Any temporal coverage information characterising the content of the dataset, e.g. the time-span covered by the dataset. | | :ref:`Dataset <Dataset>` | :ref:`HasTemporalCoverage <HasTemporalCoverage>` | 0..n | :ref:`CoverageFacet <CoverageFacet>` | Any temporal coverage information characterising the content of the dataset, e.g. the time-span covered by the dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | IsIdentifiedBy | 1..1 | IdentifierFacet | The set of Identifiers associated with the Dataset instance. | | :ref:`Dataset <Dataset>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`IdentifierFacet <IdentifierFacet>` | The set of Identifiers associated with the Dataset instance. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| ConcreteDataset | IsPartOf | 0..n | Dataset | The reference to the 'incarnations'/'manifestations' contributing to a dataset. | | :ref:`ConcreteDataset <ConcreteDataset>` | :ref:`IsPartOf <IsPartOf>` | 0..n | :ref:`Dataset <Dataset>` | The reference to the 'incarnations'/'manifestations' contributing to a dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | Involves | 0..n | Actor | | | :ref:`Dataset <Dataset>` | :ref:`Involves <Involves>` | 0..n | :ref:`Actor <Actor>` | |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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. | | :ref:`Dataset <Dataset>` | :ref:`IsCompliantWith <IsCompliantWith>` | 0..n | :ref:`Schema <Schema>` | Any schema characterising the content of the dataset, e.g. the schema describing the 'columns' of a CSV-based dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | IsCorrelatedTo | 0..n | Dataset | | | :ref:`Dataset <Dataset>` | :ref:`IsCorrelatedTo <IsCorrelatedTo>` | 0..n | :ref:`Dataset <Dataset>` | |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | Manages | 0..n | Dataset | A reference to any Dataset resource managed by the Service instance. | | :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <Dataset>` | A reference to any Dataset resource managed by the Service instance. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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. | | :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
The **Dataset** current version is 1.0.0. The **Dataset** current version is 1.0.0.
@ -249,27 +265,29 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _ConcreteDataset:
ConcreteDataset ConcreteDataset
""""""""""""""" """""""""""""""
ConcreteDataset is any incarnation/manifestation of a dataset or part of it. The relation {@link IsPartOf} is used when a ConcreteDataset is part of a {@link Dataset}. ConcreteDataset is any incarnation/manifestation of a dataset or part of it. The relation :ref:`IsPartOf <IsPartOf>` is used when a ConcreteDataset is part of a :ref:`Dataset <Dataset>`.
.. table:: **ConcreteDataset** ``extends`` **Dataset** .. table:: **ConcreteDataset** ``extends`` **Dataset**
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+===============+==============+==================+==================================================================================================================================================================+ +==========================================+======================================+==============+============================================+==================================================================================================================================================================+
| **Facets** | | **Facets** |
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ConcreteDataset | ConsistsOf | 1..n | AccessPointFacet | 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. | | :ref:`ConcreteDataset <ConcreteDataset>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`AccessPointFacet <AccessPointFacet>` | 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. |
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ConcreteDataset | HasMaintainer | 1..n | ContactFacet | The contact information of the entity responsible for the maintenance of the concrete dataset | | :ref:`ConcreteDataset <ConcreteDataset>` | :ref:`HasMaintainer <HasMaintainer>` | 1..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for the maintenance of the concrete dataset |
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ConcreteDataset | IsPartOf | 0..n | Dataset | The reference to the 'incarnations'/'manifestations' contributing to a dataset. | | :ref:`ConcreteDataset <ConcreteDataset>` | :ref:`IsPartOf <IsPartOf>` | 0..n | :ref:`Dataset <Dataset>` | The reference to the 'incarnations'/'manifestations' contributing to a dataset. |
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **ConcreteDataset** current version is 1.0.0. The **ConcreteDataset** current version is 1.0.0.
@ -279,31 +297,33 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Schema:
Schema Schema
^^^^^^ ^^^^^^
Schema is any reference schema used to specify compliant values. Examples include controlled vocabularies, ontologies, and others. This resource is mainly used by {@link Dataset} to evidence that is compliant with a Schema by using {@link IsCompliantWith} relation. Schema is any reference schema used to specify compliant values. Examples include controlled vocabularies, ontologies, and others. This resource is mainly used by :ref:`Dataset <Dataset>` to evidence that is compliant with a Schema by using :ref:`IsCompliantWith <IsCompliantWith>` relation.
.. table:: **Schema** ``extends`` **GCubeResource** .. table:: **Schema** ``extends`` **GCubeResource**
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+ +--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+=================+==============+==========================+========================================================================================================================+ +==========================+==========================================+==============+============================================================+========================================================================================================================+
| **Facets** | | **Facets** |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+ +--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| Schema | ConsistsOf | 0..n | DescriptiveMetadataFacet | | | :ref:`Schema <Schema>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`DescriptiveMetadataFacet <DescriptiveMetadataFacet>` | |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+ +--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| Schema | ConsistsOf | 0..n | SubjectFacet | | | :ref:`Schema <Schema>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SubjectFacet <SubjectFacet>` | |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+ +--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| Schema | HasContact | 1..n | ContactFacet | | | :ref:`Schema <Schema>` | :ref:`HasContact <HasContact>` | 1..n | :ref:`ContactFacet <ContactFacet>` | |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+ +--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| Schema | IsIdentifiedBy | 1..1 | SchemaFacet | | | :ref:`Schema <Schema>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`SchemaFacet <SchemaFacet>` | |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+ +--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+ +--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| 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. | | :ref:`Dataset <Dataset>` | :ref:`IsCompliantWith <IsCompliantWith>` | 0..n | :ref:`Schema <Schema>` | Any schema characterising the content of the dataset, e.g. the schema describing the 'columns' of a CSV-based dataset. |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+ +--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
The **Schema** current version is 1.0.0. The **Schema** current version is 1.0.0.
@ -313,47 +333,49 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Service:
Service Service
^^^^^^^ ^^^^^^^
Service (Abstract) represents any typology of service worth registering in the infrastructure. Service has relations with quite all other resources. If on one side, an Hybrid Data Infrastructure (HDI) is created to manage datasets, on the other side the HDI born to manage such datasets digitally. We could affirm that datasets and services are the two pillar resources around which revolves the entire infrastructure. It is important to highlight that Service has a general meaning and must not be intended as a network-callable service which is represented instead by one of its specialisation called {@link EService}.Giving that Service is abstract no {@link IsIdentifiedBy} association with a facet is provided which in turns is responsibility of the specialisation. Service (Abstract) represents any typology of service worth registering in the infrastructure. Service has relations with quite all other resources. If on one side, an Hybrid Data Infrastructure (HDI) is created to manage datasets, on the other side the HDI born to manage such datasets digitally. We could affirm that datasets and services are the two pillar resources around which revolves the entire infrastructure. It is important to highlight that Service has a general meaning and must not be intended as a network-callable service which is represented instead by one of its specialisation called :ref:`EService <EService>`.Giving that Service is abstract no :ref:`IsIdentifiedBy <IsIdentifiedBy>` association with a facet is provided which in turns is responsibility of the specialisation.
.. table:: **Service** ``extends`` **GCubeResource** .. table:: **Service** ``extends`` **GCubeResource**
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+==========================+==================================================================================================================================================================================================================================================================+ +============================+========================================+==============+============================================================+==================================================================================================================================================================================================================================================================+
| **Facets** | | **Facets** |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | ConsistsOf | 0..n | CapabilityFacet | Any facility supported/offered by the Service. | | :ref:`Service <Service>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`CapabilityFacet <CapabilityFacet>` | Any facility supported/offered by the Service. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | ConsistsOf | 0..n | DescriptiveMetadataFacet | Any descriptive information associated with the service, e.g. for discovery purposes. | | :ref:`Service <Service>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`DescriptiveMetadataFacet <DescriptiveMetadataFacet>` | Any descriptive information associated with the service, e.g. for discovery purposes. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | ConsistsOf | 0..n | SubjectFacet | Any subject/tag associated with the service for descriptive, cataloguing and discovery purposes. | | :ref:`Service <Service>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SubjectFacet <SubjectFacet>` | Any subject/tag associated with the service for descriptive, cataloguing and discovery purposes. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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 VirtualMachine enabling an EService or an HostingNode; An EService enabling a RunningPlugin; A VirtualMachine enabling an HostingNode etc | | :ref:`Service <Service>` | :ref:`Activates <Activates>` | 0..n | :ref:`Service <Service>` | The source Service enables the target Service to be running. Examples are an Hosting Node which enables an EService; A VirtualMachine enabling an EService or an HostingNode; An EService enabling a RunningPlugin; A VirtualMachine enabling an HostingNode etc |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | CallsFor | 0..n | Service | A reference to the Services needed by the target instance to work. | | :ref:`Service <Service>` | :ref:`CallsFor <CallsFor>` | 0..n | :ref:`Service <Service>` | A reference to the Services needed by the target instance to work. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | Enables | 0..n | Software | A reference to any Software the Service is enabling (i.e. the Software is running throught the EService). | | :ref:`Service <Service>` | :ref:`Enables <Enables>` | 0..n | :ref:`Software <Software>` | A reference to any Software the Service is enabling (i.e. the Software is running throught the EService). |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | IsCustomizedBy | 0..n | ConfigurationTemplate | | | :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | IsCustomizedBy | 0..n | ConfigurationTemplate | A reference to any configuration characterising the Service behaviour. | | :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | 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. | | :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <Dataset>` | A reference to any Dataset resource managed by the Service instance. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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. | | :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <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. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | 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. | | :ref:`Service <Service>` | :ref:`Requires <Requires>` | 0..n | :ref:`Service <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. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Site | Hosts | 0..n | Service | | | :ref:`Site <Site>` | :ref:`Hosts <Hosts>` | 0..n | :ref:`Service <Service>` | |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | Requires | 0..n | Service | To capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database instance. | | :ref:`Software <Software>` | :ref:`Requires <Requires>` | 0..n | :ref:`Service <Service>` | To capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database instance. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **Service** current version is 1.0.0. The **Service** current version is 1.0.0.
@ -363,6 +385,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _EService:
EService EService
"""""""" """"""""
@ -371,29 +395,29 @@ EService is any running service that is registered in the infrastructure and mad
.. table:: **EService** ``extends`` **Service** .. table:: **EService** ``extends`` **Service**
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+==================+=============================================================================================================+ +============================+========================================+==============+============================================+=============================================================================================================+
| **Facets** | | **Facets** |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| EService | ConsistsOf | 1..n | AccessPointFacet | Identify the endpoints of the EService. | | :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`AccessPointFacet <AccessPointFacet>` | Identify the endpoints of the EService. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| EService | ConsistsOf | 1..n | EventFacet | Events characterising the current status and lifecycle of the service, e.g. ActivationTime, DeploymentTime. | | :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`EventFacet <EventFacet>` | Events characterising the current status and lifecycle of the service, e.g. ActivationTime, DeploymentTime. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| EService | ConsistsOf | 0..n | LicenseFacet | The specific terms of use governing the exploitation of the EService. | | :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`LicenseFacet <LicenseFacet>` | The specific terms of use governing the exploitation of the EService. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| EService | ConsistsOf | 0..n | SoftwareFacet | Software available in the EService environment that characterizes the specific EService instance. | | :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SoftwareFacet <SoftwareFacet>` | Software available in the EService environment that characterizes the specific EService instance. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| EService | ConsistsOf | 1..1 | StateFacet | The current status of the EService, e.g. STARTED, ready, down, failed. | | :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 1..1 | :ref:`StateFacet <StateFacet>` | The current status of the EService, e.g. STARTED, ready, down, failed. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| EService | IsIdentifiedBy | 1..1 | SoftwareFacet | The main software enabling the EService capabilities. | | :ref:`EService <EService>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`SoftwareFacet <SoftwareFacet>` | The main software enabling the EService capabilities. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| EService | Discovers | 0..n | EService | A reference to any other EService, the EService instance is discovering through query on IS. | | :ref:`EService <EService>` | :ref:`Discovers <Discovers>` | 0..n | :ref:`EService <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. | | :ref:`EService <EService>` | :ref:`Uses <Uses>` | 0..n | :ref:`EService <EService>` | A reference to any other EService, the EService instance is invoking. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+ +----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
The **EService** current version is 1.0.0. The **EService** current version is 1.0.0.
@ -403,6 +427,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _RunningPlugin:
RunningPlugin RunningPlugin
""""""""""""" """""""""""""
@ -431,39 +457,41 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _HostingNode:
HostingNode HostingNode
""""""""""" """""""""""
The HostingNode represent a container capable of managing the lifecycle of an electronic service, i.e., being capable to host and operate an {@link EService}. Examples are docker, tomcat. A container is a service which is conceived to enable any services respecting the container rules to be operative. The container does not typically provide any functionality rather than allowing the hosted service to operate. The HostingNode characterisation in terms of facets reflects the one presented for {@link VirtualMachine}. In particular, facets representing memory, CPU and networking interface are used to describe the HostingNode when the {@link VirtualMachine} enabling the HostingNode is not represented. Federated systems can provide virtual machines as resource or containers as resources. In some cases, the description of a container includes (virtual) hardware information. It is important to highlight that HostingNode is not a subclass of {@link VirtualMachine}. The HostingNode represent a container capable of managing the lifecycle of an electronic service, i.e., being capable to host and operate an :ref:`EService <EService>`. Examples are docker, tomcat. A container is a service which is conceived to enable any services respecting the container rules to be operative. The container does not typically provide any functionality rather than allowing the hosted service to operate. The HostingNode characterisation in terms of facets reflects the one presented for :ref:`VirtualMachine <VirtualMachine>`. In particular, facets representing memory, CPU and networking interface are used to describe the HostingNode when the :ref:`VirtualMachine <VirtualMachine>` enabling the HostingNode is not represented. Federated systems can provide virtual machines as resource or containers as resources. In some cases, the description of a container includes (virtual) hardware information. It is important to highlight that HostingNode is not a subclass of :ref:`VirtualMachine <VirtualMachine>`.
.. table:: **HostingNode** ``extends`` **Service** .. table:: **HostingNode** ``extends`` **Service**
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+=======================================================+=====================+==============+=====================+==================================================================================================================================================================================+ +=======================================================+==================================================+==============+==================================================+==================================================================================================================================================================================+
| **Facets** | | **Facets** |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | ConsistsOf | 1..n | CPUFacet | The CPU equipping the Hosting Node. | | :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`CPUFacet <CPUFacet>` | The CPU equipping the Hosting Node. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | ConsistsOf | 1..n | EventFacet | Every event characterizing the life cycle of the Hosting Node, e.g. the activation time. | | :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`EventFacet <EventFacet>` | Every event characterizing the life cycle of the Hosting Node, e.g. the activation time. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | ConsistsOf | 0..n | SimplePropertyFacet | Any <key,value> pair property worth associating with the Hosting Node, e.g. Environment Variables | | :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SimplePropertyFacet <SimplePropertyFacet>` | Any <key,value> pair property worth associating with the Hosting Node, e.g. Environment Variables |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | ConsistsOf | 0..n | SoftwareFacet | 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 | | :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SoftwareFacet <SoftwareFacet>` | 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 |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | ConsistsOf | 1..1 | StateFacet | The current state of the Hosting Node, e.g. started, ready, certified, down, failed. | | :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 1..1 | :ref:`StateFacet <StateFacet>` | The current state of the Hosting Node, e.g. started, ready, certified, down, failed. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | HasPersistentMemory | 1..n | MemoryFacet | The Disk Space Capacity of the Hosting Node. | | :ref:`HostingNode <HostingNode>` | :ref:`HasPersistentMemory <HasPersistentMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The Disk Space Capacity of the Hosting Node. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | HasVolatileMemory | 1..n | MemoryFacet | The RAM Capacity of the Hosting Node. | | :ref:`HostingNode <HostingNode>` | :ref:`HasVolatileMemory <HasVolatileMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The RAM Capacity of the Hosting Node. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | IsIdentifiedBy | 1..1 | NetworkingFacet | The Network ID characterising the Hosting Node. | | :ref:`HostingNode <HostingNode>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`NetworkingFacet <NetworkingFacet>` | The Network ID characterising the Hosting Node. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. | | No specific Resource relations defined for this type. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **HostingNode** current version is 1.0.0. The **HostingNode** current version is 1.0.0.
@ -473,6 +501,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _VirtualMachine:
VirtualMachine VirtualMachine
"""""""""""""" """"""""""""""
@ -481,29 +511,29 @@ VirtualMachine (VM) is the typical resource represented in a cloud infrastructur
.. table:: **VirtualMachine** ``extends`` **Service** .. table:: **VirtualMachine** ``extends`` **Service**
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+=======================================================+=====================+==============+=================+=====================================================================================================================================================================================+ +=======================================================+==================================================+==============+==========================================+=====================================================================================================================================================================================+
| **Facets** | | **Facets** |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | ConsistsOf | 1..n | CPUFacet | The CPU equipping the Virtual Machine. | | :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`CPUFacet <CPUFacet>` | The CPU equipping the Virtual Machine. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | ConsistsOf | 1..n | EventFacet | Every event characterizing the life cycle of the Virtual Machine, e.g. the activation time. | | :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`EventFacet <EventFacet>` | Every event characterizing the life cycle of the Virtual Machine, e.g. the activation time. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | ConsistsOf | 0..n | SoftwareFacet | Any Software characterising the Virtual Machine. Useful to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System | | :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SoftwareFacet <SoftwareFacet>` | Any Software characterising the Virtual Machine. Useful to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | ConsistsOf | 1..1 | StateFacet | The current state of the Virtual Machine, e.g. started, ready, down, unreachable. | | :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 1..1 | :ref:`StateFacet <StateFacet>` | The current state of the Virtual Machine, e.g. started, ready, down, unreachable. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | HasPersistentMemory | 1..n | MemoryFacet | The Disk Space Capacity of the Virtual Machine. | | :ref:`VirtualMachine <VirtualMachine>` | :ref:`HasPersistentMemory <HasPersistentMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The Disk Space Capacity of the Virtual Machine. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | HasVolatileMemory | 1..n | MemoryFacet | The RAM Capacity of the Virtual Machine. | | :ref:`VirtualMachine <VirtualMachine>` | :ref:`HasVolatileMemory <HasVolatileMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The RAM Capacity of the Virtual Machine. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | IsIdentifiedBy | 1..1 | NetworkingFacet | The Network ID characterising the Virtual Machine. | | :ref:`VirtualMachine <VirtualMachine>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`NetworkingFacet <NetworkingFacet>` | The Network ID characterising the Virtual Machine. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. | | No specific Resource relations defined for this type. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **VirtualMachine** current version is 1.0.0. The **VirtualMachine** current version is 1.0.0.
@ -513,25 +543,27 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _VirtualService:
VirtualService VirtualService
"""""""""""""" """"""""""""""
VirtualService is 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 have to be managed like an existing unit. This resource is essential from infrastructure management point of view because it allows easily share a pool of services across VREs as a single unit. VirtualService mainly consist of a service definition which uses relations to {@link ConfigurationTemplate}, {@link EService}, {@link Software} (using {@link Demands} relation) to properly support the sharing across VREs. The correct sharing is feasible thanks to the {@link PropagationConstraint} of the model. The IS provides only the support for resource sharing as a bundle. Instead, the actions required to deploy a {@link Software} are a responsibility of the service invoking the sharing operation. This resource emerged thank to the experience maturated with gCube IS V.1 (gCore Based IS) where this resource was represented as a Generic Resource containing the list of the resources id forming the bundle which often lead to inconsistency. VirtualService is 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 have to be managed like an existing unit. This resource is essential from infrastructure management point of view because it allows easily share a pool of services across VREs as a single unit. VirtualService mainly consist of a service definition which uses relations to :ref:`ConfigurationTemplate <ConfigurationTemplate>`, :ref:`EService <EService>`, :ref:`Software <Software>` (using :ref:`Demands <Demands>` relation) to properly support the sharing across VREs. The correct sharing is feasible thanks to the :ref:`PropagationConstraint <PropagationConstraint>` of the model. The IS provides only the support for resource sharing as a bundle. Instead, the actions required to deploy a :ref:`Software <Software>` are a responsibility of the service invoking the sharing operation. This resource emerged thank to the experience maturated with gCube IS V.1 (gCore Based IS) where this resource was represented as a Generic Resource containing the list of the resources id forming the bundle which often lead to inconsistency.
.. table:: **VirtualService** ``extends`` **Service** .. table:: **VirtualService** ``extends`` **Service**
+------------------------+----------------+--------------+---------------+-------------+ +----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+===============+=============+ +========================================+========================================+==============+======================================+=============+
| **Facets** | | **Facets** |
+------------------------+----------------+--------------+---------------+-------------+ +----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| VirtualService | IsIdentifiedBy | 1..n | SoftwareFacet | | | :ref:`VirtualService <VirtualService>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..n | :ref:`SoftwareFacet <SoftwareFacet>` | |
+------------------------+----------------+--------------+---------------+-------------+ +----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+----------------+--------------+---------------+-------------+ +----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| VirtualService | Demands | 0..n | Software | | | :ref:`VirtualService <VirtualService>` | :ref:`Demands <Demands>` | 0..n | :ref:`Software <Software>` | |
+------------------------+----------------+--------------+---------------+-------------+ +----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
The **VirtualService** current version is 1.0.0. The **VirtualService** current version is 1.0.0.
@ -541,6 +573,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Site:
Site Site
^^^^ ^^^^
@ -549,29 +583,29 @@ Site is a resource representing the location (physical or virtual) hosting the r
.. table:: **Site** ``extends`` **GCubeResource** .. table:: **Site** ``extends`` **GCubeResource**
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+=================+====================================================+ +========================+========================================+==============+==========================================+====================================================+
| **Facets** | | **Facets** |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Site | ConsistsOf | 1..n | LocationFacet | | | :ref:`Site <Site>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`LocationFacet <LocationFacet>` | |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Site | ConsistsOf | 1..n | NetworkingFacet | | | :ref:`Site <Site>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`NetworkingFacet <NetworkingFacet>` | |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Site | HasContact | 1..n | ContactFacet | The main contact for the Site. | | :ref:`Site <Site>` | :ref:`HasContact <HasContact>` | 1..n | :ref:`ContactFacet <ContactFacet>` | The main contact for the Site. |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Site | HasMaintainer | 1..n | ContactFacet | Contact information of the maintainer of the Site. | | :ref:`Site <Site>` | :ref:`HasMaintainer <HasMaintainer>` | 1..n | :ref:`ContactFacet <ContactFacet>` | Contact information of the maintainer of the Site. |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Site | HasManager | 1..n | ContactFacet | Contact information of the Site Manager. | | :ref:`Site <Site>` | :ref:`HasManager <HasManager>` | 1..n | :ref:`ContactFacet <ContactFacet>` | Contact information of the Site Manager. |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Site | IsIdentifiedBy | 1..1 | IdentifierFacet | The Site Identifier. | | :ref:`Site <Site>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`IdentifierFacet <IdentifierFacet>` | The Site Identifier. |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Site | Hosts | 0..n | Service | | | :ref:`Site <Site>` | :ref:`Hosts <Hosts>` | 0..n | :ref:`Service <Service>` | |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Site | IsOwnedBy | 0..n | Actor | | | :ref:`Site <Site>` | :ref:`IsOwnedBy <IsOwnedBy>` | 0..n | :ref:`Actor <Actor>` | |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+ +------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
The **Site** current version is 1.0.0. The **Site** current version is 1.0.0.
@ -581,41 +615,43 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Software:
Software Software
^^^^^^^^ ^^^^^^^^
Software is an entity worth being represented for management purposes. The relation {@link DependsOn} indicates dependencies between two Software captured for management purposes. Software is an entity worth being represented for management purposes. The relation :ref:`DependsOn <DependsOn>` indicates dependencies between two Software captured for management purposes.
.. table:: **Software** ``extends`` **GCubeResource** .. table:: **Software** ``extends`` **GCubeResource**
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+=======================+====================================================================================================================================================+ +========================================+========================================+==============+======================================================+====================================================================================================================================================+
| **Facets** | | **Facets** |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | ConsistsOf | 0..n | CapabilityFacet | | | :ref:`Software <Software>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`CapabilityFacet <CapabilityFacet>` | |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | ConsistsOf | 1..n | SoftwareFacet | Apart the one connected by the IsIdentifiedBy relation (gCube coordinates) the others identify the software in other way e.g. (Maven coordinates). | | :ref:`Software <Software>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`SoftwareFacet <SoftwareFacet>` | Apart the one connected by the IsIdentifiedBy relation (gCube coordinates) the others identify the software in other way e.g. (Maven coordinates). |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | IsIdentifiedBy | 1..1 | SoftwareFacet | Software coordinates which identify the Software per se. | | :ref:`Software <Software>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`SoftwareFacet <SoftwareFacet>` | Software coordinates which identify the Software per se. |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Plugin | IsPluginOf | 0..n | Software | A reference to the Software this Plugin is conceived to extend the capabilities. | | :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <Software>` | A reference to the Software this Plugin is conceived to extend the capabilities. |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Plugin | IsPluginOf | 0..n | Software | To capture the relation between a Software and its Plugins. | | :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <Software>` | To capture the relation between a Software and its Plugins. |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | Enables | 0..n | Software | A reference to any Software the Service is enabling (i.e. the Software is running throught the EService). | | :ref:`Service <Service>` | :ref:`Enables <Enables>` | 0..n | :ref:`Software <Software>` | A reference to any Software the Service is enabling (i.e. the Software is running throught the EService). |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | DependsOn | 0..n | Software | To capture any dependency between two software artifacts. | | :ref:`Software <Software>` | :ref:`DependsOn <DependsOn>` | 0..n | :ref:`Software <Software>` | To capture any dependency between two software artifacts. |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | IsConfiguredBy | 0..n | ConfigurationTemplate | | | :ref:`Software <Software>` | :ref:`IsConfiguredBy <IsConfiguredBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | Requires | 0..n | Service | To capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database instance. | | :ref:`Software <Software>` | :ref:`Requires <Requires>` | 0..n | :ref:`Service <Service>` | To capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database instance. |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualService | Demands | 0..n | Software | | | :ref:`VirtualService <VirtualService>` | :ref:`Demands <Demands>` | 0..n | :ref:`Software <Software>` | |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ +----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
The **Software** current version is 1.0.0. The **Software** current version is 1.0.0.
@ -625,6 +661,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Plugin:
Plugin Plugin
"""""" """"""
@ -633,19 +671,19 @@ Collect Plugin information through the list of its facets.
.. table:: **Plugin** ``extends`` **Software** .. table:: **Plugin** ``extends`` **Software**
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+ +-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description | | Source | Relation | Multiplicity | Target | Description |
+=================================================+============+==============+==========+==================================================================================+ +=================================================+================================+==============+============================+==================================================================================+
| **Facets** | | **Facets** |
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+ +-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| No specific facets usage defined for this type. | | No specific facets usage defined for this type. |
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+ +-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| **Resource Relations** | | **Resource Relations** |
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+ +-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| Plugin | IsPluginOf | 0..n | Software | A reference to the Software this Plugin is conceived to extend the capabilities. | | :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <Software>` | A reference to the Software this Plugin is conceived to extend the capabilities. |
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+ +-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| Plugin | IsPluginOf | 0..n | Software | To capture the relation between a Software and its Plugins. | | :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <Software>` | To capture the relation between a Software and its Plugins. |
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+ +-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
The **Plugin** current version is 1.0.0. The **Plugin** current version is 1.0.0.

View File

@ -1,4 +1,6 @@
.. _Property:
Property Property
======== ========
@ -21,6 +23,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Encrypted:
Encrypted Encrypted
--------- ---------
@ -43,6 +47,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Metadata:
Metadata Metadata
-------- --------
@ -71,6 +77,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _PropagationConstraint:
PropagationConstraint PropagationConstraint
--------------------- ---------------------
@ -98,6 +106,8 @@ Changelog:
* **1.0.0**: First Version; * **1.0.0**: First Version;
.. _Entity:
Entity Entity
====== ======
@ -106,15 +116,15 @@ This is the base type for any Entity
.. table:: **Entity** .. table:: **Entity**
+------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+ +------------+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
| Properties | | Properties |
+============+==========+====================================================================================================================================================+============================================================================================+ +============+============================+====================================================================================================================================================+============================================================================================+
| **Name** | **Type** | **Attributes** | **Description** | | **Name** | **Type** | **Attributes** | **Description** |
+------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+ +------------+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
| id | String | ``Mandatory:true`` ``ReadOnly:true`` ``NotNull:true`` ``Regex:^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}){1}$`` | This UUID is be used to identify the instance univocally. | | id | String | ``Mandatory:true`` ``ReadOnly:true`` ``NotNull:true`` ``Regex:^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}){1}$`` | This UUID is be used to identify the instance univocally. |
+------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+ +------------+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
| metadata | Metadata | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | Metadata associated with the instance that is automatically created/updated by the system. | | metadata | :ref:`Metadata <Metadata>` | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | Metadata associated with the instance that is automatically created/updated by the system. |
+------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+ +------------+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
The **Entity** current version is 1.0.0. The **Entity** current version is 1.0.0.
@ -124,6 +134,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Resource:
Resource Resource
-------- --------
@ -152,6 +164,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Facet:
Facet Facet
----- -----
@ -182,6 +196,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _Relation:
Relation Relation
======== ========
@ -190,19 +206,19 @@ This is the base type for any Relation
.. table:: **Relation** .. table:: **Relation**
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ +----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| **Definition** | | **Definition** |
+=======================+=======================+==========================================================+=================+========================================+ +============================+======================================================+==========================================================+========================+========================================+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ +----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| Resource | Relation | 0..n | Entity | This is the base type for any Relation | | :ref:`Resource <Resource>` | :ref:`Relation <Relation>` | 0..n | :ref:`Entity <Entity>` | This is the base type for any Relation |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ +----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| **Properties** | | **Properties** |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ +----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| **Name** | **Type** | **Attributes** | **Description** | | **Name** | **Type** | **Attributes** | **Description** |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ +----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| propagationConstraint | PropagationConstraint | ``Mandatory:false`` ``ReadOnly:false`` ``NotNull:false`` | | | propagationConstraint | :ref:`PropagationConstraint <PropagationConstraint>` | ``Mandatory:false`` ``ReadOnly:false`` ``NotNull:false`` | |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ +----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
The **Relation** current version is 1.0.0. The **Relation** current version is 1.0.0.
@ -212,6 +228,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _IsRelatedTo:
IsRelatedTo IsRelatedTo
----------- -----------
@ -220,25 +238,25 @@ This is the base type for any IsRelatedTo relation
.. table:: **IsRelatedTo** ``extends`` **Relation** .. table:: **IsRelatedTo** ``extends`` **Relation**
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ +------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Definition** | | **Definition** |
+======================================================+==============+==================+=================+====================================================+ +======================================================+==================================+==================+============================+====================================================+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ +------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| Resource | IsRelatedTo | 0..n | Resource | This is the base type for any IsRelatedTo relation | | :ref:`Resource <Resource>` | :ref:`IsRelatedTo <IsRelatedTo>` | 0..n | :ref:`Resource <Resource>` | This is the base type for any IsRelatedTo relation |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ +------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Properties** | | **Properties** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ +------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Name** | **Type** | **Attributes** | **Description** | | **Name** | **Type** | **Attributes** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ +------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| This type does not define any additional attributes. | | This type does not define any additional attributes. |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ +------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Known Usage** | | **Known Usage** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ +------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ +------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| No specific known usage for this type. | | No specific known usage for this type. |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ +------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
The **IsRelatedTo** current version is 1.0.0. The **IsRelatedTo** current version is 1.0.0.
@ -248,6 +266,8 @@ Changelog:
* **1.0.0**: First Version. * **1.0.0**: First Version.
.. _ConsistsOf:
ConsistsOf ConsistsOf
---------- ----------
@ -256,25 +276,25 @@ This is the base type for any ConsistsOf relation
.. table:: **ConsistsOf** ``extends`` **Relation** .. table:: **ConsistsOf** ``extends`` **Relation**
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+ +------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Definition** | | **Definition** |
+======================================================+==============+==================+=================+===================================================+ +======================================================+================================+==================+======================+===================================================+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+ +------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| Resource | ConsistsOf | 0..n | Facet | This is the base type for any ConsistsOf relation | | :ref:`Resource <Resource>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`Facet <Facet>` | This is the base type for any ConsistsOf relation |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+ +------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Properties** | | **Properties** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+ +------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Name** | **Type** | **Attributes** | **Description** | | **Name** | **Type** | **Attributes** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+ +------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| This type does not define any additional attributes. | | This type does not define any additional attributes. |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+ +------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Known Usage** | | **Known Usage** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+ +------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+ +------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| No specific known usage for this type. | | No specific known usage for this type. |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+ +------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
The **ConsistsOf** current version is 1.0.0. The **ConsistsOf** current version is 1.0.0.

View File

@ -7,9 +7,13 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.discovery.knowledge.UsageKnowledge; import org.gcube.informationsystem.discovery.knowledge.UsageKnowledge;
import org.gcube.informationsystem.types.PropertyTypeName;
import org.gcube.informationsystem.types.impl.properties.PropertyDefinitionImpl;
import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.types.reference.properties.LinkedEntity; import org.gcube.informationsystem.types.reference.properties.LinkedEntity;
import org.gcube.informationsystem.types.reference.properties.PropertyDefinition; import org.gcube.informationsystem.types.reference.properties.PropertyDefinition;
@ -34,8 +38,15 @@ public abstract class Documentation {
public static final String NO_ADDITIONAL_ATTRIBUTE = "This type does not define any additional attributes."; public static final String NO_ADDITIONAL_ATTRIBUTE = "This type does not define any additional attributes.";
public static final String NO_SPECIFIC_KNOWN_USAGE = "No specific known usage for this type."; public static final String NO_SPECIFIC_KNOWN_USAGE = "No specific known usage for this type.";
public static final String NAMED_LINK_PATTERN = "\\{@link (?<type>[A-Za-z]*)\\}";
public static final Pattern linkPattern;
protected static int defaultOffsetLevel = 0; protected static int defaultOffsetLevel = 0;
static {
linkPattern = Pattern.compile(NAMED_LINK_PATTERN);
}
public static int getDefaultOffsetLevel() { public static int getDefaultOffsetLevel() {
return defaultOffsetLevel; return defaultOffsetLevel;
} }
@ -89,6 +100,35 @@ public abstract class Documentation {
public void setOffsetLevel(int offsetLevel) { public void setOffsetLevel(int offsetLevel) {
this.offsetLevel = offsetLevel; this.offsetLevel = offsetLevel;
} }
public String getReference(String label) {
return getReference(label, label);
}
public String getReference(String label, String referenceId) {
StringBuffer sb = new StringBuffer();
sb.append(":ref:`");
sb.append(label);
sb.append(" <");
sb.append(referenceId);
sb.append(">");
sb.append("`");
return sb.toString();
}
protected String checkDescription(String description) {
StringBuffer stringBuffer = new StringBuffer();
Matcher matcher = linkPattern.matcher(description);
while (matcher.find()) {
// int start = matcher.start();
// int end = matcher.end();
String typeName = matcher.group("type");
matcher.appendReplacement(stringBuffer, getReference(typeName));
}
matcher.appendTail(stringBuffer);
return stringBuffer.toString();
}
protected Row getPropertyFieldsBoldRow() { protected Row getPropertyFieldsBoldRow() {
Row row = new Row(RowType.NORMAL); Row row = new Row(RowType.NORMAL);
Cell name = new Cell(); Cell name = new Cell();
@ -191,11 +231,11 @@ public abstract class Documentation {
protected Row getLinkedEntityrow(LinkedEntity linkedEntity) { protected Row getLinkedEntityrow(LinkedEntity linkedEntity) {
Row row = new Row(RowType.NORMAL); Row row = new Row(RowType.NORMAL);
Cell source = new Cell(); Cell source = new Cell();
source.setText(linkedEntity.getSource()); source.setText(getReference(linkedEntity.getSource()));
row.appendCell(source); row.appendCell(source);
Cell relation = new Cell(); Cell relation = new Cell();
relation.setText(linkedEntity.getRelation()); relation.setText(getReference(linkedEntity.getRelation()));
row.appendCell(relation); row.appendCell(relation);
Cell multiplicity = new Cell(); Cell multiplicity = new Cell();
@ -209,11 +249,11 @@ public abstract class Documentation {
row.appendCell(multiplicity); row.appendCell(multiplicity);
Cell target = new Cell(); Cell target = new Cell();
target.setText(linkedEntity.getTarget()); target.setText(getReference(linkedEntity.getTarget()));
row.appendCell(target); row.appendCell(target);
Cell description = new Cell(); Cell description = new Cell();
description.setText(linkedEntity.getDescription()); description.setText(checkDescription(linkedEntity.getDescription()));
row.appendCell(description); row.appendCell(description);
for(int i=row.getCells().size(); i<requiredNumberOfColumns; i++) { for(int i=row.getCells().size(); i<requiredNumberOfColumns; i++) {
@ -278,13 +318,21 @@ public abstract class Documentation {
name.setText(propertyDefinition.getName()); name.setText(propertyDefinition.getName());
row.appendCell(name); row.appendCell(name);
Cell type = new Cell(); Cell type = new Cell();
type.setText(propertyDefinition.getPropertyType());
PropertyTypeName propertyTypeName = ((PropertyDefinitionImpl) propertyDefinition).getPropertyTypeName();
String typeName = propertyDefinition.getPropertyType();
if(propertyTypeName.isGenericType() ) {
String generic = propertyTypeName.getGenericClassName();
type.setText(typeName.replace(generic, getReference(generic)));
}else {
type.setText(typeName);
}
row.appendCell(type); row.appendCell(type);
Cell attributes = new Cell(); Cell attributes = new Cell();
attributes.setText(getPropertyAttributes(propertyDefinition)); attributes.setText(getPropertyAttributes(propertyDefinition));
row.appendCell(attributes); row.appendCell(attributes);
Cell description = new Cell(); Cell description = new Cell();
description.setText(propertyDefinition.getDescription()); description.setText(checkDescription(propertyDefinition.getDescription()));
row.appendCell(description); row.appendCell(description);
for(int i=row.getCells().size(); i<requiredNumberOfColumns; i++) { for(int i=row.getCells().size(); i<requiredNumberOfColumns; i++) {
row.appendCell(description); row.appendCell(description);
@ -383,7 +431,7 @@ public abstract class Documentation {
stringBuffer.append("\n"); stringBuffer.append("\n");
Section section = getSection(); Section section = getSection();
String name = type.getName(); String name = type.getName();
stringBuffer.append(section.generate(name)); stringBuffer.append(section.generate(name, true));
return stringBuffer; return stringBuffer;
} }
@ -434,7 +482,7 @@ public abstract class Documentation {
public StringBuffer generate() { public StringBuffer generate() {
StringBuffer stringBuffer = generateSection(); StringBuffer stringBuffer = generateSection();
stringBuffer.append(type.getDescription()); stringBuffer.append(checkDescription(type.getDescription()));
stringBuffer.append("\n"); stringBuffer.append("\n");
stringBuffer.append(generateTable()); stringBuffer.append(generateTable());
stringBuffer.append(generateChangelog()); stringBuffer.append(generateChangelog());

View File

@ -33,11 +33,11 @@ public class RelationDocumentation extends Documentation {
protected Row getTypeDefinitionRow(RelationType<? extends EntityType, ? extends EntityType> relationType) { protected Row getTypeDefinitionRow(RelationType<? extends EntityType, ? extends EntityType> relationType) {
Row row = new Row(RowType.NORMAL); Row row = new Row(RowType.NORMAL);
Cell source = new Cell(); Cell source = new Cell();
source.setText(relationType.getSource().getName()); source.setText(getReference(relationType.getSource().getName()));
row.appendCell(source); row.appendCell(source);
Cell relation = new Cell(); Cell relation = new Cell();
relation.setText(relationType.getName()); relation.setText(getReference(relationType.getName()));
row.appendCell(relation); row.appendCell(relation);
Cell multiplicity = new Cell(); Cell multiplicity = new Cell();
@ -45,11 +45,11 @@ public class RelationDocumentation extends Documentation {
row.appendCell(multiplicity); row.appendCell(multiplicity);
Cell target = new Cell(); Cell target = new Cell();
target.setText(relationType.getTarget().getName()); target.setText(getReference(relationType.getTarget().getName()));
row.appendCell(target); row.appendCell(target);
Cell description = new Cell(); Cell description = new Cell();
description.setText(relationType.getDescription()); description.setText(checkDescription(relationType.getDescription()));
row.appendCell(description); row.appendCell(description);
for(int i=row.getCells().size(); i<requiredNumberOfColumns; i++) { for(int i=row.getCells().size(); i<requiredNumberOfColumns; i++) {

View File

@ -48,8 +48,13 @@ public class Section {
return stringBuffer; return stringBuffer;
} }
public StringBuffer generate(String sectionTitle) { public StringBuffer generate(String sectionTitle, boolean addSectionReference) {
StringBuffer stringBuffer = new StringBuffer(); StringBuffer stringBuffer = new StringBuffer();
if(addSectionReference) {
stringBuffer.append(".. _");
stringBuffer.append(sectionTitle);
stringBuffer.append(":\n\n");
}
int lenght = sectionTitle.length(); int lenght = sectionTitle.length();
if(sectionType.overline) { if(sectionType.overline) {
stringBuffer.append(getSectionSeparation(sectionType.separator, lenght)); stringBuffer.append(getSectionSeparation(sectionType.separator, lenght));