486 lines
42 KiB
ReStructuredText
486 lines
42 KiB
ReStructuredText
#############################
|
|
Information System (IS) Model
|
|
#############################
|
|
|
|
This Model is part of research conducted in the context of a PhD. This wiki page represents just a partial view of the full rationale of the research. To have a complete overview of the rationale of the model, please refer to the PhD thesis which is publicly available at:
|
|
|
|
https://etd.adm.unipi.it/t/etd-05102019-114151/
|
|
|
|
https://openportal.isti.cnr.it/doc?id=people______::470484e51fcb9e307a418c800efc44c8
|
|
|
|
If you need to refer to such work you can cite the PhD Thesis.
|
|
|
|
.. code::
|
|
|
|
@phdthesis{frosini2019transactional,
|
|
title={Transactional REST Information System for Federated Research Infrastructures enabling Virtual Research Environments},
|
|
author={Frosini, Luca},
|
|
year={2019},
|
|
school={UNIVERSITÀ DI PISA}
|
|
}
|
|
|
|
An previous paper about this work is:
|
|
|
|
|
|
|
|
.. code::
|
|
|
|
@article{frosini2018facet,
|
|
title={A Facet-based Open and Extensible Resource Model for Research Data Infrastructures.},
|
|
author={Frosini, Luca and Pagano, Pasquale},
|
|
journal={Grey Journal (TGJ)},
|
|
volume={14},
|
|
number={2},
|
|
year={2018}
|
|
}
|
|
|
|
|
|
|
|
************
|
|
The IS Model
|
|
************
|
|
|
|
.. image:: ./is-model.png
|
|
|
|
.. image:: ./is-model-er.png
|
|
|
|
The Information System Model (henceforth IS Model) is a graph model with Entities as nodes and Relations as edges.
|
|
|
|
* Two typologies of entities are envisaged:
|
|
|
|
* Resources, i.e. entities representing a description of "thing" to be managed:
|
|
|
|
* Every Resource is described by a number of Facets.
|
|
|
|
* Facets, i.e. entities contributing to "build" a description of a Resource. Every facet, once attached to a Resource profile captures a certain aspect / characterization of the resource:
|
|
|
|
* Every facet is characterised by a number of properties.
|
|
|
|
* Two typologies of relations are envisaged:
|
|
|
|
* IsRelatedTo, i.e. a relation linking any two Resources.
|
|
* ConsistsOf, i.e. a relation connecting each Resource with one of the Facets characterizing it;
|
|
|
|
* Each entity and relation:
|
|
|
|
* has an UUID used for identification;
|
|
* has a metadata automatically generated for the sake of provenance of the specific information;
|
|
* can be specialized
|
|
|
|
* A number of specializations are identified below. Such specializations are managed by the gCube Core services, i.e. Core services builds upon these specializations to realize its management tasks;
|
|
* Other specializations can be defined by clients, the system make it possible to store these additional typologies of relations and facets and to discover them.
|
|
|
|
* Facet and Relation instances can have additional properties which are not defined in the schema (henceforth schema-mixed mode).
|
|
* On relations:
|
|
|
|
* Any relation has a direction, i.e. a "source" (out bound of the relation) and a "target" (in bound of the relation). Anyway, the relation can be also navigated in the opposite direction;
|
|
* It is not permitted to define a Relation having a Facet as "source". In other words:
|
|
|
|
* It is not permitted to define a Relation connecting a Facet with another one;
|
|
* It is not permitted to define a Relation connecting a Facet with a Resource (as target);
|
|
|
|
* A Facet instance can be linked (by ConsistsOf or any specialization of it) from different Resources.
|
|
|
|
We derived the term Facet directly from the dictionary definition.
|
|
Merriam Webster Dictionary defines facet as “any of the definable aspects that make up a subject
|
|
(as of contemplation) or an object (as of consideration)” [#FacetMerriamWebsterDef]_ .
|
|
|
|
The Free Dictionary defines a facet as “One of numerous aspects, as of a subject” [#FacetFreeDictionaryDef]_ .
|
|
|
|
|
|
|
|
Type Attributes
|
|
===============
|
|
|
|
Any Property defined in the schema is characterised by:
|
|
|
|
Name:
|
|
Property Name
|
|
|
|
Type:
|
|
The Type of the Property (e.g. String, Integer, ...). It can be a Basic Type or a Derived Type or a Complex Type
|
|
|
|
Description:
|
|
The description of the Property. default=null.
|
|
|
|
Mandatory (M):
|
|
Indicate if the Property is mandatory. default=false.
|
|
|
|
ReadOnly (RO):
|
|
The Property cannot change its value. default=false.
|
|
|
|
NotNull (NN):
|
|
Whether the property must assume a value diverse from 'null' or not. default=false
|
|
|
|
Max (Max):
|
|
default=null
|
|
|
|
Min (Min):
|
|
default=null
|
|
|
|
Regex (Reg)):
|
|
A Regular Expression to validate the property value, default=null. A good online tool for regex is avalable at https://regex101.com/
|
|
|
|
|
|
Basic Types
|
|
-----------
|
|
|
|
.. table:: Basic Types
|
|
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| Type | Java type | Description |
|
|
+==========+===========================================================================================+===========================================================+
|
|
| Boolean | <code>java.lang.Boolean</code> or <code>boolean</code> | Handles only the values <em>True</em> or <em>False</em>. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| Integer | <code>java.lang.Integer</code> or <code>int</code> or <code>java.math.BigInteger</code> | 32-bit signed Integers. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| Short | <code>java.lang.Short</code> or <code>short</code> | Small 16-bit signed integers. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| Long | <code>java.lang.Long</code> or <code>long</code> | Big 64-bit signed integers. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| Float | <code>java.lang.Float</code> or <code>float</code> | Decimal numbers. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| Double | <code>java.lang.Double</code> or <code>double</code> | Decimal numbers with high precision. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| Date | <code>java.util.Date</code> | Any date with the precision up to milliseconds. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| String | <code>java.lang.String</code> | Any string as alphanumeric sequence of chars. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| Byte | <code>java.lang.Byte</code> or <code>byte</code> | Single byte. useful to store small 8-bit signed integers. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
| Binary | <code>java.lang.Byte[]</code> or <code>byte[]</code> | Can contain any value as byte array. |
|
|
+----------+-------------------------------------------------------------------------------------------+-----------------------------------------------------------+
|
|
|
|
|
|
|
|
Derived Types
|
|
-------------
|
|
|
|
The following are obtained using a String as real type and adding a validation regex.
|
|
|
|
.. table:: Derived Types
|
|
|
|
+--------------+-------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| Type | Java type | Description |
|
|
+==============+=============================================================+=============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+
|
|
| Enum | <code>java.lang.Enum</code> or <code>enum</code> | By default it is represented using the String representation of the Enum. So that the primitive type used will be String. The enumeration is checked by setting <code>Regexpr</code> property. The Regular Expression is auto-generated and it will be something like <code>^(FIRST-ENUM-STRING_REPRESENTATION SECOND-ENUM-STRING_REPRESENTATION... LAST_ENUM_STRING_REPRESENTATION)$</code>. Otherwise (if indicated using an annotation), it can be represented using the Integer value of the Enum. So that the primitive type used will be Integer. The enumeration is checked using <code>Max</code> and <code>Min</code> properties. |
|
|
+--------------+-------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| UUID | <code>java.util.UUID</code> | String representation of the UUID. The check is obtained using the regular expression ^([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}$ |
|
|
+--------------+-------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| URL | <code>java.net.URL</code> | String representation of the URL. No check actually. |
|
|
+--------------+-------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| URI | <code>java.net.URI</code> | String representation of the URI. No check actually. |
|
|
+--------------+-------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| TypeVersion | <code>org.gcube.informationsystem.utils.TypeVersion</code> | A type representing and validating a version in the following format X.X.X Major(Integer).Minor(Integer).Revision(Integer) (e.g 1.0.0, 2.3.0, 2.0.1). The check is obtained using the regular expression '''<code>^[1-9][0-9]{0,}\.(0 |
|
|
+--------------+-------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
|
|
Complex Types
|
|
-------------
|
|
|
|
Any property defined by composing basic types, complex types and other complex types. Any complex type can be defined by extending Property type.
|
|
|
|
.. table:: Complex Types
|
|
|
|
+---------------------------+-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| Type | Java type | Description |
|
|
+===========================+=================================================================================================================+===================================================================================================================================================================+
|
|
| Property | <code>? extends org.gcube.informationsystem.model.reference.properties.Property</code> | This is an Object contained inside the owner Entity and has no UUID and Metadata. It is reachable only by navigating the owner Entity/Relation. |
|
|
+---------------------------+-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| <del>Property list</del> | <del><code>List<? extends org.gcube.informationsystem.model.reference.properties.Property></code></del> | <del>List of Objects contained inside the owner Entity and have no UUID and Metadata. They are reachable only by navigating the owner Entity/Relation.</del> |
|
|
+---------------------------+-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| <del>Property set</del> | <del><code>Set<? org.gcube.informationsystem.model.reference.properties.Property></code></del> | <del>Set (no duplicates) of Objects contained inside the owner Entity and have no UUID and Metadata. They are reachable only by navigating the owner Entity/Relation.</del> |
|
|
+---------------------------+-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| Property map | <code>Map<String, ? extends org.gcube.informationsystem.model.reference.properties.Propertyd></code> | Map of Objects contained inside the owner Entity and have no UUID and Metadata. They are reachable only by navigating the owner Entity/Relation. |
|
|
+---------------------------+-----------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
Property
|
|
========
|
|
|
|
This is the base type for any Property
|
|
|
|
|
|
.. table:: **Property**
|
|
|
|
+------------------------------------------------------+------+------------+-------------+
|
|
| Name | Type | Attributes | Description |
|
|
+======================================================+======+============+=============+
|
|
| This type does not define any additional attributes. |
|
|
+------------------------------------------------------+------+------------+-------------+
|
|
|
|
|
|
The **Property** current version is 1.0.0.
|
|
|
|
Changelog:
|
|
|
|
* **1.0.0**: First Version.
|
|
|
|
|
|
Meatdata
|
|
------
|
|
|
|
This type provides metadata per every IdentifiableElement
|
|
|
|
|
|
.. table:: **Metadata** ``extends`` **Property**
|
|
|
|
+----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
| Name | Type | Attributes | Description |
|
|
+================+========+====================================================================================================================================================+=========================================================================================================================================+
|
|
| createdBy | String | ``Mandatory:true`` ``ReadOnly:true`` ``NotNull:true`` | The user that created the Entity or the Relation. It is initialized at Creation Time. |
|
|
+----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
| creationTime | Date | ``Mandatory:true`` ``ReadOnly:true`` ``NotNull:true`` | Creation time. It is represented in the format yyyy-MM-dd HH:mm:ss.SSS Z. |
|
|
+----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
| lastUpdateBy | String | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | The user that made the last update to the Entity or the Relation. At Creation Time, it assumes the same value of createdBy. |
|
|
+----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
| lastUpdateTime | Date | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | Last Update time. At creation time it assumes the same value of creationTime. It is represented in the format yyyy-MM-dd HH:mm:ss.SSS Z |
|
|
+----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
The **Metadata** current version is 1.0.0.
|
|
|
|
Changelog:
|
|
|
|
* **1.0.0**: First Version.
|
|
|
|
|
|
PropagationConstraint
|
|
---------------------
|
|
|
|
This type provides propagation constraint for Relation
|
|
|
|
|
|
.. table:: **PropagationConstraint** ``extends`` **Property**
|
|
|
|
+--------+--------+-----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| Name | Type | Attributes | Description |
|
|
+========+========+=====================================================================================================+======================================================================================================================================================================================================================+
|
|
| add | String | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` ``Regex:^(propagate|unpropagate)$`` | It indicates the behaviour to implement for the target Entity when an 'add' action is performed on the source Resource. Add action is the operation of adding an instance to a context. |
|
|
+--------+--------+-----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| delete | String | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` ``Regex:^(cascadeWhenOrphan|cascade|keep)$`` | It indicates the behaviour to implement for the target Entity when a 'delete' action is performed on the source Resource. Delet action is the operation of deleting an instance (it has an impact on all contexts). |
|
|
+--------+--------+-----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| remove | String | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` ``Regex:^(cascadeWhenOrphan|cascade|keep)$`` | It indicates the behaviour to implement for the target Entity when a 'remove' action is performed on the source Resource. Remove actions is the operation of removing an instance from a context. |
|
|
+--------+--------+-----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
The **PropagationConstraint** current version is 1.1.0.
|
|
|
|
Changelog:
|
|
|
|
* **1.1.0**: Added 'delete' propagation constraint;
|
|
* **1.0.0**: First Version;
|
|
|
|
|
|
Vault
|
|
-----
|
|
|
|
This type is used to properly manage values must be stored safely (e.g. encrypted) in the IS.
|
|
|
|
|
|
.. table:: **Vault** ``extends`` **Property**
|
|
|
|
+-------+--------+--------------------------------------------------------+-------------------------------------+
|
|
| Name | Type | Attributes | Description |
|
|
+=======+========+========================================================+=====================================+
|
|
| value | String | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | The value to store safely in the IS |
|
|
+-------+--------+--------------------------------------------------------+-------------------------------------+
|
|
|
|
|
|
The **Vault** current version is 1.0.0.
|
|
|
|
Changelog:
|
|
|
|
* **1.0.0**: First Version.
|
|
|
|
|
|
Entity
|
|
======
|
|
|
|
This is the base type for any Entity
|
|
|
|
|
|
.. table:: **Entity**
|
|
|
|
+------------+----------+--------------------------------------------------------+--------------------------------------------------------------------------------------------+
|
|
| Properties |
|
|
+============+==========+========================================================+============================================================================================+
|
|
| **Name** | **Type** | **Attributes** | **Description** |
|
|
+------------+----------+--------------------------------------------------------+--------------------------------------------------------------------------------------------+
|
|
| 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.
|
|
|
|
Changelog:
|
|
|
|
* **1.0.0**: First Version.
|
|
|
|
|
|
Resource
|
|
--------
|
|
|
|
This is the base type for any Resource
|
|
|
|
|
|
.. table:: **Resource** ``extends`` **Entity**
|
|
|
|
+-------------------------------------------------------+----------+--------------+--------+-------------+
|
|
| Source | Relation | Multiplicity | Target | Description |
|
|
+=======================================================+==========+==============+========+=============+
|
|
| **Facets** |
|
|
+-------------------------------------------------------+----------+--------------+--------+-------------+
|
|
| No specific facets usage defined for this type. |
|
|
+-------------------------------------------------------+----------+--------------+--------+-------------+
|
|
| **Resource Relations** |
|
|
+-------------------------------------------------------+----------+--------------+--------+-------------+
|
|
| No specific Resource relations defined for this type. |
|
|
+-------------------------------------------------------+----------+--------------+--------+-------------+
|
|
|
|
|
|
The **Resource** current version is 1.0.0.
|
|
|
|
Changelog:
|
|
|
|
* **1.0.0**: First Version.
|
|
|
|
|
|
Facet
|
|
-----
|
|
|
|
This is the base type for any Facet
|
|
|
|
|
|
.. table:: **Facet** ``extends`` **Entity**
|
|
|
|
+------------------------------------------------------+--------------+------------------+-----------------+-----------------+
|
|
| 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 **Facet** current version is 1.0.0.
|
|
|
|
Changelog:
|
|
|
|
* **1.0.0**: First Version.
|
|
|
|
|
|
Relation
|
|
========
|
|
|
|
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`` | |
|
|
+-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+
|
|
|
|
|
|
The **Relation** current version is 1.0.0.
|
|
|
|
Changelog:
|
|
|
|
* **1.0.0**: First Version.
|
|
|
|
|
|
IsRelatedTo
|
|
-----------
|
|
|
|
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. |
|
|
+------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+
|
|
|
|
|
|
The **IsRelatedTo** current version is 1.0.0.
|
|
|
|
Changelog:
|
|
|
|
* **1.0.0**: First Version.
|
|
|
|
|
|
ConsistsOf
|
|
----------
|
|
|
|
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. |
|
|
+------------------------------------------------------+--------------+------------------+-----------------+---------------------------------------------------+
|
|
|
|
|
|
The **ConsistsOf** current version is 1.0.0.
|
|
|
|
Changelog:
|
|
|
|
* **1.0.0**: First Version.
|
|
|
|
|
|
.. rubric:: Footnotes
|
|
|
|
.. [#FacetMerriamWebsterDef] https://www.merriam-webster.com/dictionary/facet
|
|
.. [#FacetFreeDictionaryDef] https://www.thefreedictionary.com/facet
|