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

View File

@ -1,8 +1,12 @@
.. _Resource:
Resource
========
.. _GCubeResource:
GCubeResource
-------------
@ -11,17 +15,17 @@ Marker type for any gCube Resource extended in the gCube model.
.. table:: **GCubeResource** ``extends`` **Resource**
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+================+==============+========+==============================================================================================+
| **Facets** |
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+
| GCubeResource | IsIdentifiedBy | 1..1 | Facet | Any Resource has at least one Facet which in some way allow to identify the Resource per se. |
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+----------------+--------------+--------+----------------------------------------------------------------------------------------------+
+-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+========================================+==============+======================+==============================================================================================+
| **Facets** |
+-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| :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** |
+-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+----------------------------------------+--------------+----------------------+----------------------------------------------------------------------------------------------+
The **GCubeResource** current version is 1.0.0.
@ -31,29 +35,31 @@ Changelog:
* **1.0.0**: First Version.
.. _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**
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+=======================+====================================================================================+
| **Facets** |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+
| Actor | ConsistsOf | 0..n | ContactReferenceFacet | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+
| Actor | IsIdentifiedBy | 1..1 | ContactFacet | An Actor has at least a Contact Facet which permit to identify the Actor per se. |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+
| Dataset | Involves | 0..n | Actor | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+
| Site | IsOwnedBy | 0..n | Actor | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------------------+
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+==========================+========================================+==============+======================================================+====================================================================================+
| **Facets** |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| :ref:`Actor <Actor>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`ContactReferenceFacet <ContactReferenceFacet>` | |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| :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** |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`Involves <Involves>` | 0..n | :ref:`Actor <Actor>` | |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
| :ref:`Site <Site>` | :ref:`IsOwnedBy <IsOwnedBy>` | 0..n | :ref:`Actor <Actor>` | |
+--------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------------------+
The **Actor** current version is 1.0.0.
@ -63,6 +69,8 @@ Changelog:
* **1.0.0**: First Version.
.. _LegalBody:
LegalBody
"""""""""
@ -71,17 +79,17 @@ LegalBody represents any legal entity playing the role of an Actor.
.. table:: **LegalBody** ``extends`` **Actor**
+-------------------------------------------------+-----------+--------------+-----------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+===========+==============+===========+=============+
| **Facets** |
+-------------------------------------------------+-----------+--------------+-----------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+-----------+--------------+-----------+-------------+
| **Resource Relations** |
+-------------------------------------------------+-----------+--------------+-----------+-------------+
| Person | BelongsTo | 0..n | LegalBody | |
+-------------------------------------------------+-----------+--------------+-----------+-------------+
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+==============================+==============+==============================+=============+
| **Facets** |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| **Resource Relations** |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| :ref:`Person <Person>` | :ref:`BelongsTo <BelongsTo>` | 0..n | :ref:`LegalBody <LegalBody>` | |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
The **LegalBody** current version is 1.0.0.
@ -91,6 +99,8 @@ Changelog:
* **1.0.0**: First Version.
.. _Person:
Person
""""""
@ -99,17 +109,17 @@ Person represents any human playing the role of Actor.
.. table:: **Person** ``extends`` **Actor**
+-------------------------------------------------+-----------+--------------+-----------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+===========+==============+===========+=============+
| **Facets** |
+-------------------------------------------------+-----------+--------------+-----------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+-----------+--------------+-----------+-------------+
| **Resource Relations** |
+-------------------------------------------------+-----------+--------------+-----------+-------------+
| Person | BelongsTo | 0..n | LegalBody | |
+-------------------------------------------------+-----------+--------------+-----------+-------------+
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+==============================+==============+==============================+=============+
| **Facets** |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| **Resource Relations** |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
| :ref:`Person <Person>` | :ref:`BelongsTo <BelongsTo>` | 0..n | :ref:`LegalBody <LegalBody>` | |
+-------------------------------------------------+------------------------------+--------------+------------------------------+-------------+
The **Person** current version is 1.0.0.
@ -119,6 +129,8 @@ Changelog:
* **1.0.0**: First Version.
.. _ConfigurationTemplate:
ConfigurationTemplate
^^^^^^^^^^^^^^^^^^^^^
@ -127,23 +139,23 @@ Configuration Template represents a template for a configuration. It describes h
.. table:: **ConfigurationTemplate** ``extends`` **GCubeResource**
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+=======================+========================================================================+
| **Facets** |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+
| ConfigurationTemplate | IsIdentifiedBy | 1..1 | IdentifierFacet | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+
| Configuration | IsDerivationOf | 0..n | ConfigurationTemplate | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+
| Service | IsCustomizedBy | 0..n | ConfigurationTemplate | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+
| Service | IsCustomizedBy | 0..n | ConfigurationTemplate | A reference to any configuration characterising the Service behaviour. |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+
| Software | IsConfiguredBy | 0..n | ConfigurationTemplate | |
+------------------------+----------------+--------------+-----------------------+------------------------------------------------------------------------+
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+======================================================+========================================+==============+======================================================+========================================================================+
| **Facets** |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`ConfigurationTemplate <ConfigurationTemplate>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`IdentifierFacet <IdentifierFacet>` | |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`Configuration <Configuration>` | :ref:`IsDerivationOf <IsDerivationOf>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | A reference to any configuration characterising the Service behaviour. |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`IsConfiguredBy <IsConfiguredBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+------------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+------------------------------------------------------------------------+
The **ConfigurationTemplate** current version is 1.0.0.
@ -153,25 +165,27 @@ Changelog:
* **1.0.0**: First Version.
.. _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**
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+================+==============+=======================+=============+
| **Facets** |
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+
| **Resource Relations** |
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+
| Configuration | IsDerivationOf | 0..n | ConfigurationTemplate | |
+-------------------------------------------------+----------------+--------------+-----------------------+-------------+
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+========================================+==============+======================================================+=============+
| **Facets** |
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| **Resource Relations** |
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
| :ref:`Configuration <Configuration>` | :ref:`IsDerivationOf <IsDerivationOf>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+-------------------------------------------------+----------------------------------------+--------------+------------------------------------------------------+-------------+
The **Configuration** current version is 1.0.0.
@ -181,65 +195,67 @@ Changelog:
* **1.0.0**: First Version.
.. _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**
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+=====================+==============+==========================+=========================================================================================================================================================+
| **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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | ConsistsOf | 0..n | 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | ConsistsOf | 0..n | 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasContact | 1..n | 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasCoverage | 1..n | 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasCurator | 0..n | 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasOwner | 0..n | 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | HasTemporalCoverage | 0..n | 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| ConcreteDataset | IsPartOf | 0..n | Dataset | The reference to the 'incarnations'/'manifestations' contributing to a dataset. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | Involves | 0..n | 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Dataset | IsCorrelatedTo | 0..n | Dataset | |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | Manages | 0..n | 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. |
+------------------------+---------------------+--------------+--------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+==========================================+==================================================+==============+============================================================+=========================================================================================================================================================+
| **Facets** |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`DescriptiveMetadataFacet <DescriptiveMetadataFacet>` | Any descriptive information associated with the dataset, e.g. for discovery purposes. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`ProvenanceFacet <ProvenanceFacet>` | Any provenance record associated with the dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SubjectFacet <SubjectFacet>` | Any subject/tag associated with the dataset for descriptive and discovery purposes. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasContact <HasContact>` | 1..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for 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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasCreator <HasCreator>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the creator 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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`HasMaintainer <HasMaintainer>` | 0..n | :ref:`ContactFacet <ContactFacet>` | The contact information of the entity responsible for the maintenance 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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`IdentifierFacet <IdentifierFacet>` | The set of Identifiers associated with the Dataset instance. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ConcreteDataset <ConcreteDataset>` | :ref:`IsPartOf <IsPartOf>` | 0..n | :ref:`Dataset <Dataset>` | The reference to the 'incarnations'/'manifestations' contributing to a dataset. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`Involves <Involves>` | 0..n | :ref:`Actor <Actor>` | |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dataset <Dataset>` | :ref:`IsCorrelatedTo <IsCorrelatedTo>` | 0..n | :ref:`Dataset <Dataset>` | |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <Dataset>` | A reference to any Dataset resource managed by the Service instance. |
+------------------------------------------+--------------------------------------------------+--------------+------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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.
@ -249,27 +265,29 @@ Changelog:
* **1.0.0**: First Version.
.. _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**
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+===============+==============+==================+==================================================================================================================================================================+
| **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. |
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ConcreteDataset | HasMaintainer | 1..n | ContactFacet | The contact information of the entity responsible for the maintenance of the concrete dataset |
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ConcreteDataset | IsPartOf | 0..n | Dataset | The reference to the 'incarnations'/'manifestations' contributing to a dataset. |
+------------------------+---------------+--------------+------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+==========================================+======================================+==============+============================================+==================================================================================================================================================================+
| **Facets** |
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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** |
+------------------------------------------+--------------------------------------+--------------+--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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.
@ -279,31 +297,33 @@ Changelog:
* **1.0.0**: First Version.
.. _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**
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+=================+==============+==========================+========================================================================================================================+
| **Facets** |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+
| Schema | ConsistsOf | 0..n | DescriptiveMetadataFacet | |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+
| Schema | ConsistsOf | 0..n | SubjectFacet | |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+
| Schema | HasContact | 1..n | ContactFacet | |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+
| Schema | IsIdentifiedBy | 1..1 | SchemaFacet | |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+
| **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. |
+------------------------+-----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------+
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+==========================+==========================================+==============+============================================================+========================================================================================================================+
| **Facets** |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :ref:`Schema <Schema>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`DescriptiveMetadataFacet <DescriptiveMetadataFacet>` | |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :ref:`Schema <Schema>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SubjectFacet <SubjectFacet>` | |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :ref:`Schema <Schema>` | :ref:`HasContact <HasContact>` | 1..n | :ref:`ContactFacet <ContactFacet>` | |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :ref:`Schema <Schema>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`SchemaFacet <SchemaFacet>` | |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+--------------------------+------------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+
| :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.
@ -313,47 +333,49 @@ Changelog:
* **1.0.0**: First Version.
.. _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**
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+==========================+==================================================================================================================================================================================================================================================================+
| **Facets** |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | ConsistsOf | 0..n | 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. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | ConsistsOf | 0..n | SubjectFacet | Any subject/tag associated with the service for descriptive, cataloguing and discovery purposes. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **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 |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | CallsFor | 0..n | 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). |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | IsCustomizedBy | 0..n | ConfigurationTemplate | |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | IsCustomizedBy | 0..n | 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. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Site | Hosts | 0..n | 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. |
+------------------------+----------------+--------------+--------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+============================+========================================+==============+============================================================+==================================================================================================================================================================================================================================================================+
| **Facets** |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`CapabilityFacet <CapabilityFacet>` | Any facility supported/offered by the Service. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`DescriptiveMetadataFacet <DescriptiveMetadataFacet>` | Any descriptive information associated with the service, e.g. for 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** |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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 |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`CallsFor <CallsFor>` | 0..n | :ref:`Service <Service>` | A reference to the Services needed by the target instance to work. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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). |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`IsCustomizedBy <IsCustomizedBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | A reference to any configuration characterising the Service behaviour. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Service <Service>` | :ref:`Manages <Manages>` | 0..n | :ref:`Dataset <Dataset>` | A reference to any Dataset resource managed by the Service instance. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Site <Site>` | :ref:`Hosts <Hosts>` | 0..n | :ref:`Service <Service>` | |
+----------------------------+----------------------------------------+--------------+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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.
@ -363,6 +385,8 @@ Changelog:
* **1.0.0**: First Version.
.. _EService:
EService
""""""""
@ -371,29 +395,29 @@ EService is any running service that is registered in the infrastructure and mad
.. table:: **EService** ``extends`` **Service**
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+==================+=============================================================================================================+
| **Facets** |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+
| EService | ConsistsOf | 1..n | 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. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+
| EService | ConsistsOf | 0..n | 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. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+
| EService | ConsistsOf | 1..1 | 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. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+
| EService | Discovers | 0..n | EService | A reference to any other EService, the EService instance is discovering through query on IS. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+
| EService | Uses | 0..n | EService | A reference to any other EService, the EService instance is invoking. |
+------------------------+----------------+--------------+------------------+-------------------------------------------------------------------------------------------------------------+
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+============================+========================================+==============+============================================+=============================================================================================================+
| **Facets** |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`AccessPointFacet <AccessPointFacet>` | Identify the endpoints of the EService. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :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. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`LicenseFacet <LicenseFacet>` | The specific terms of use governing the exploitation of the EService. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`SoftwareFacet <SoftwareFacet>` | Software available in the EService environment that characterizes the specific EService instance. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`ConsistsOf <ConsistsOf>` | 1..1 | :ref:`StateFacet <StateFacet>` | The current status of the EService, e.g. STARTED, ready, down, failed. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`EService <EService>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`SoftwareFacet <SoftwareFacet>` | The main software enabling the EService capabilities. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :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. |
+----------------------------+----------------------------------------+--------------+--------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :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.
@ -403,6 +427,8 @@ Changelog:
* **1.0.0**: First Version.
.. _RunningPlugin:
RunningPlugin
"""""""""""""
@ -431,39 +457,41 @@ Changelog:
* **1.0.0**: First Version.
.. _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**
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+=====================+==============+=====================+==================================================================================================================================================================================+
| **Facets** |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | ConsistsOf | 1..n | 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. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | ConsistsOf | 0..n | 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 |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | ConsistsOf | 1..1 | 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. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | HasVolatileMemory | 1..n | MemoryFacet | The RAM Capacity of the Hosting Node. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| HostingNode | IsIdentifiedBy | 1..1 | NetworkingFacet | The Network ID characterising the Hosting Node. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+---------------------+--------------+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+==================================================+==============+==================================================+==================================================================================================================================================================================+
| **Facets** |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`CPUFacet <CPUFacet>` | The CPU equipping the Hosting Node. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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 |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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 |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`HasPersistentMemory <HasPersistentMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The Disk Space Capacity of the Hosting Node. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`HasVolatileMemory <HasVolatileMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The RAM Capacity of the Hosting Node. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`HostingNode <HostingNode>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`NetworkingFacet <NetworkingFacet>` | The Network ID characterising the Hosting Node. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+--------------------------------------------------+--------------+--------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **HostingNode** current version is 1.0.0.
@ -473,6 +501,8 @@ Changelog:
* **1.0.0**: First Version.
.. _VirtualMachine:
VirtualMachine
""""""""""""""
@ -481,29 +511,29 @@ VirtualMachine (VM) is the typical resource represented in a cloud infrastructur
.. table:: **VirtualMachine** ``extends`` **Service**
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+=====================+==============+=================+=====================================================================================================================================================================================+
| **Facets** |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | ConsistsOf | 1..n | 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. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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 |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | ConsistsOf | 1..1 | 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. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | HasVolatileMemory | 1..n | MemoryFacet | The RAM Capacity of the Virtual Machine. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualMachine | IsIdentifiedBy | 1..1 | NetworkingFacet | The Network ID characterising the Virtual Machine. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+---------------------+--------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=======================================================+==================================================+==============+==========================================+=====================================================================================================================================================================================+
| **Facets** |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`CPUFacet <CPUFacet>` | The CPU equipping the Virtual Machine. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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 |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`ConsistsOf <ConsistsOf>` | 1..1 | :ref:`StateFacet <StateFacet>` | The current state of the Virtual Machine, e.g. started, ready, down, unreachable. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`HasPersistentMemory <HasPersistentMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The Disk Space Capacity of the Virtual Machine. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`HasVolatileMemory <HasVolatileMemory>` | 1..n | :ref:`MemoryFacet <MemoryFacet>` | The RAM Capacity of the Virtual Machine. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualMachine <VirtualMachine>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`NetworkingFacet <NetworkingFacet>` | The Network ID characterising the Virtual Machine. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| No specific Resource relations defined for this type. |
+-------------------------------------------------------+--------------------------------------------------+--------------+------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
The **VirtualMachine** current version is 1.0.0.
@ -513,25 +543,27 @@ Changelog:
* **1.0.0**: First Version.
.. _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**
+------------------------+----------------+--------------+---------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+===============+=============+
| **Facets** |
+------------------------+----------------+--------------+---------------+-------------+
| VirtualService | IsIdentifiedBy | 1..n | SoftwareFacet | |
+------------------------+----------------+--------------+---------------+-------------+
| **Resource Relations** |
+------------------------+----------------+--------------+---------------+-------------+
| VirtualService | Demands | 0..n | Software | |
+------------------------+----------------+--------------+---------------+-------------+
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| Source | Relation | Multiplicity | Target | Description |
+========================================+========================================+==============+======================================+=============+
| **Facets** |
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| :ref:`VirtualService <VirtualService>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..n | :ref:`SoftwareFacet <SoftwareFacet>` | |
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| **Resource Relations** |
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
| :ref:`VirtualService <VirtualService>` | :ref:`Demands <Demands>` | 0..n | :ref:`Software <Software>` | |
+----------------------------------------+----------------------------------------+--------------+--------------------------------------+-------------+
The **VirtualService** current version is 1.0.0.
@ -541,6 +573,8 @@ Changelog:
* **1.0.0**: First Version.
.. _Site:
Site
^^^^
@ -549,29 +583,29 @@ Site is a resource representing the location (physical or virtual) hosting the r
.. table:: **Site** ``extends`` **GCubeResource**
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+=================+====================================================+
| **Facets** |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| Site | ConsistsOf | 1..n | LocationFacet | |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| Site | ConsistsOf | 1..n | NetworkingFacet | |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| Site | HasContact | 1..n | ContactFacet | The main contact for the Site. |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| Site | HasMaintainer | 1..n | ContactFacet | Contact information of the maintainer of the Site. |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| Site | HasManager | 1..n | ContactFacet | Contact information of the Site Manager. |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| Site | IsIdentifiedBy | 1..1 | IdentifierFacet | The Site Identifier. |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| **Resource Relations** |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| Site | Hosts | 0..n | Service | |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
| Site | IsOwnedBy | 0..n | Actor | |
+------------------------+----------------+--------------+-----------------+----------------------------------------------------+
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+========================================+==============+==========================================+====================================================+
| **Facets** |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`LocationFacet <LocationFacet>` | |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`ConsistsOf <ConsistsOf>` | 1..n | :ref:`NetworkingFacet <NetworkingFacet>` | |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`HasContact <HasContact>` | 1..n | :ref:`ContactFacet <ContactFacet>` | The main contact for the Site. |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`HasMaintainer <HasMaintainer>` | 1..n | :ref:`ContactFacet <ContactFacet>` | Contact information of the maintainer of the Site. |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`HasManager <HasManager>` | 1..n | :ref:`ContactFacet <ContactFacet>` | Contact information of the Site Manager. |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`IdentifierFacet <IdentifierFacet>` | The Site Identifier. |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| **Resource Relations** |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`Hosts <Hosts>` | 0..n | :ref:`Service <Service>` | |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
| :ref:`Site <Site>` | :ref:`IsOwnedBy <IsOwnedBy>` | 0..n | :ref:`Actor <Actor>` | |
+------------------------+----------------------------------------+--------------+------------------------------------------+----------------------------------------------------+
The **Site** current version is 1.0.0.
@ -581,41 +615,43 @@ Changelog:
* **1.0.0**: First Version.
.. _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**
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================+================+==============+=======================+====================================================================================================================================================+
| **Facets** |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | ConsistsOf | 0..n | 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). |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | IsIdentifiedBy | 1..1 | SoftwareFacet | Software coordinates which identify the Software per se. |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Plugin | IsPluginOf | 0..n | 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. |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Service | Enables | 0..n | 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. |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Software | IsConfiguredBy | 0..n | 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. |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| VirtualService | Demands | 0..n | Software | |
+------------------------+----------------+--------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+========================================+========================================+==============+======================================================+====================================================================================================================================================+
| **Facets** |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`CapabilityFacet <CapabilityFacet>` | |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :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). |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`IsIdentifiedBy <IsIdentifiedBy>` | 1..1 | :ref:`SoftwareFacet <SoftwareFacet>` | Software coordinates which identify the Software per se. |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| **Resource Relations** |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <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>` | To capture the relation between a Software and its Plugins. |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :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). |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`DependsOn <DependsOn>` | 0..n | :ref:`Software <Software>` | To capture any dependency between two software artifacts. |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Software <Software>` | :ref:`IsConfiguredBy <IsConfiguredBy>` | 0..n | :ref:`ConfigurationTemplate <ConfigurationTemplate>` | |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :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. |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VirtualService <VirtualService>` | :ref:`Demands <Demands>` | 0..n | :ref:`Software <Software>` | |
+----------------------------------------+----------------------------------------+--------------+------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+
The **Software** current version is 1.0.0.
@ -625,6 +661,8 @@ Changelog:
* **1.0.0**: First Version.
.. _Plugin:
Plugin
""""""
@ -633,19 +671,19 @@ Collect Plugin information through the list of its facets.
.. table:: **Plugin** ``extends`` **Software**
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+============+==============+==========+==================================================================================+
| **Facets** |
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+
| Plugin | IsPluginOf | 0..n | 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. |
+-------------------------------------------------+------------+--------------+----------+----------------------------------------------------------------------------------+
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| Source | Relation | Multiplicity | Target | Description |
+=================================================+================================+==============+============================+==================================================================================+
| **Facets** |
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| No specific facets usage defined for this type. |
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| **Resource Relations** |
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
| :ref:`Plugin <Plugin>` | :ref:`IsPluginOf <IsPluginOf>` | 0..n | :ref:`Software <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>` | To capture the relation between a Software and its Plugins. |
+-------------------------------------------------+--------------------------------+--------------+----------------------------+----------------------------------------------------------------------------------+
The **Plugin** current version is 1.0.0.

View File

@ -1,4 +1,6 @@
.. _Property:
Property
========
@ -21,6 +23,8 @@ Changelog:
* **1.0.0**: First Version.
.. _Encrypted:
Encrypted
---------
@ -43,6 +47,8 @@ Changelog:
* **1.0.0**: First Version.
.. _Metadata:
Metadata
--------
@ -71,6 +77,8 @@ Changelog:
* **1.0.0**: First Version.
.. _PropagationConstraint:
PropagationConstraint
---------------------
@ -98,6 +106,8 @@ Changelog:
* **1.0.0**: First Version;
.. _Entity:
Entity
======
@ -106,15 +116,15 @@ This is the base type for any Entity
.. table:: **Entity**
+------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
| Properties |
+============+==========+====================================================================================================================================================+============================================================================================+
| **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. |
+------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
| metadata | Metadata | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | Metadata associated with the instance that is automatically created/updated by the system. |
+------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
+------------+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
| Properties |
+============+============================+====================================================================================================================================================+============================================================================================+
| **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. |
+------------+----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------+
| 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.
@ -124,6 +134,8 @@ Changelog:
* **1.0.0**: First Version.
.. _Resource:
Resource
--------
@ -152,6 +164,8 @@ Changelog:
* **1.0.0**: First Version.
.. _Facet:
Facet
-----
@ -182,6 +196,8 @@ Changelog:
* **1.0.0**: First Version.
.. _Relation:
Relation
========
@ -190,19 +206,19 @@ This is the base type for any Relation
.. table:: **Relation**
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+
| **Definition** |
+=======================+=======================+==========================================================+=================+========================================+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+
| Resource | Relation | 0..n | Entity | This is the base type for any Relation |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+
| **Properties** |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+
| **Name** | **Type** | **Attributes** | **Description** |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+
| propagationConstraint | PropagationConstraint | ``Mandatory:false`` ``ReadOnly:false`` ``NotNull:false`` | |
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+
+----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| **Definition** |
+============================+======================================================+==========================================================+========================+========================================+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| :ref:`Resource <Resource>` | :ref:`Relation <Relation>` | 0..n | :ref:`Entity <Entity>` | This is the base type for any Relation |
+----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| **Properties** |
+----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| **Name** | **Type** | **Attributes** | **Description** |
+----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
| propagationConstraint | :ref:`PropagationConstraint <PropagationConstraint>` | ``Mandatory:false`` ``ReadOnly:false`` ``NotNull:false`` | |
+----------------------------+------------------------------------------------------+----------------------------------------------------------+------------------------+----------------------------------------+
The **Relation** current version is 1.0.0.
@ -212,6 +228,8 @@ Changelog:
* **1.0.0**: First Version.
.. _IsRelatedTo:
IsRelatedTo
-----------
@ -220,25 +238,25 @@ This is the base type for any IsRelatedTo relation
.. table:: **IsRelatedTo** ``extends`` **Relation**
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
| **Definition** |
+======================================================+==============+==================+=================+====================================================+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
| Resource | IsRelatedTo | 0..n | Resource | This is the base type for any IsRelatedTo relation |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
| **Properties** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
| **Name** | **Type** | **Attributes** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
| This type does not define any additional attributes. |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
| **Known Usage** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
| No specific known usage for this type. |
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
+------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Definition** |
+======================================================+==================================+==================+============================+====================================================+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| :ref:`Resource <Resource>` | :ref:`IsRelatedTo <IsRelatedTo>` | 0..n | :ref:`Resource <Resource>` | This is the base type for any IsRelatedTo relation |
+------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Properties** |
+------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Name** | **Type** | **Attributes** | **Description** |
+------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| This type does not define any additional attributes. |
+------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Known Usage** |
+------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
| No specific known usage for this type. |
+------------------------------------------------------+----------------------------------+------------------+----------------------------+----------------------------------------------------+
The **IsRelatedTo** current version is 1.0.0.
@ -248,6 +266,8 @@ Changelog:
* **1.0.0**: First Version.
.. _ConsistsOf:
ConsistsOf
----------
@ -256,25 +276,25 @@ This is the base type for any ConsistsOf relation
.. table:: **ConsistsOf** ``extends`` **Relation**
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
| **Definition** |
+======================================================+==============+==================+=================+===================================================+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
| Resource | ConsistsOf | 0..n | Facet | This is the base type for any ConsistsOf relation |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
| **Properties** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
| **Name** | **Type** | **Attributes** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
| This type does not define any additional attributes. |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
| **Known Usage** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
| No specific known usage for this type. |
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
+------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Definition** |
+======================================================+================================+==================+======================+===================================================+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| :ref:`Resource <Resource>` | :ref:`ConsistsOf <ConsistsOf>` | 0..n | :ref:`Facet <Facet>` | This is the base type for any ConsistsOf relation |
+------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Properties** |
+------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Name** | **Type** | **Attributes** | **Description** |
+------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| This type does not define any additional attributes. |
+------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Known Usage** |
+------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| **Source** | **Relation** | **Multiplicity** | **Target** | **Description** |
+------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
| No specific known usage for this type. |
+------------------------------------------------------+--------------------------------+------------------+----------------------+---------------------------------------------------+
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.Map;
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.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.properties.LinkedEntity;
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_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;
static {
linkPattern = Pattern.compile(NAMED_LINK_PATTERN);
}
public static int getDefaultOffsetLevel() {
return defaultOffsetLevel;
}
@ -89,6 +100,35 @@ public abstract class Documentation {
public void setOffsetLevel(int 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() {
Row row = new Row(RowType.NORMAL);
Cell name = new Cell();
@ -191,11 +231,11 @@ public abstract class Documentation {
protected Row getLinkedEntityrow(LinkedEntity linkedEntity) {
Row row = new Row(RowType.NORMAL);
Cell source = new Cell();
source.setText(linkedEntity.getSource());
source.setText(getReference(linkedEntity.getSource()));
row.appendCell(source);
Cell relation = new Cell();
relation.setText(linkedEntity.getRelation());
relation.setText(getReference(linkedEntity.getRelation()));
row.appendCell(relation);
Cell multiplicity = new Cell();
@ -209,11 +249,11 @@ public abstract class Documentation {
row.appendCell(multiplicity);
Cell target = new Cell();
target.setText(linkedEntity.getTarget());
target.setText(getReference(linkedEntity.getTarget()));
row.appendCell(target);
Cell description = new Cell();
description.setText(linkedEntity.getDescription());
description.setText(checkDescription(linkedEntity.getDescription()));
row.appendCell(description);
for(int i=row.getCells().size(); i<requiredNumberOfColumns; i++) {
@ -278,13 +318,21 @@ public abstract class Documentation {
name.setText(propertyDefinition.getName());
row.appendCell(name);
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);
Cell attributes = new Cell();
attributes.setText(getPropertyAttributes(propertyDefinition));
row.appendCell(attributes);
Cell description = new Cell();
description.setText(propertyDefinition.getDescription());
description.setText(checkDescription(propertyDefinition.getDescription()));
row.appendCell(description);
for(int i=row.getCells().size(); i<requiredNumberOfColumns; i++) {
row.appendCell(description);
@ -383,7 +431,7 @@ public abstract class Documentation {
stringBuffer.append("\n");
Section section = getSection();
String name = type.getName();
stringBuffer.append(section.generate(name));
stringBuffer.append(section.generate(name, true));
return stringBuffer;
}
@ -434,7 +482,7 @@ public abstract class Documentation {
public StringBuffer generate() {
StringBuffer stringBuffer = generateSection();
stringBuffer.append(type.getDescription());
stringBuffer.append(checkDescription(type.getDescription()));
stringBuffer.append("\n");
stringBuffer.append(generateTable());
stringBuffer.append(generateChangelog());

View File

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

View File

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