|
|
(119 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| <!-- CATEGORIES --> | | <!-- CATEGORIES --> |
− | <!-- [[Category: gCube Features]] -->
| + | [[Category: gCube Features]] |
| + | [[Category: Developer's Guide]] |
| + | [[Category: Information System]] |
| <!-- CATEGORIES --> | | <!-- CATEGORIES --> |
| {| align="right" | | {| align="right" |
| ||__TOC__ | | ||__TOC__ |
| |} | | |} |
| + | |
| + | The Information System Model (henceforth IS Model) is used by [[Information System Resource Registry]] |
| + | |
| + | == Disclaimer == |
| + | |
| + | This Model is part of research conducted in the context of a PhD. |
| + | This wiki page represents just a partial view of the full rationale of the research. |
| + | To have a complete overview of the rationale of the model, please refer to the PhD thesis which is publicly available at: |
| + | |
| + | https://etd.adm.unipi.it/t/etd-05102019-114151/ |
| + | |
| + | https://openportal.isti.cnr.it/doc?id=people______::470484e51fcb9e307a418c800efc44c8 |
| + | |
| + | |
| + | If you need to refer to such work you can cite the PhD Thesis. |
| + | |
| + | BibText: |
| + | |
| + | <pre> |
| + | @phdthesis{frosini2019transactional, |
| + | title={Transactional REST Information System for Federated Research Infrastructures enabling Virtual Research Environments}, |
| + | author={Frosini, Luca}, |
| + | year={2019}, |
| + | school={UNIVERSIT{\`A} DI PISA} |
| + | } |
| + | </pre> |
| + | |
| + | An previous paper about this work is: |
| + | |
| + | BibText: |
| + | |
| + | <pre> |
| + | @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} |
| + | } |
| + | </pre> |
| | | |
| == IS Model == | | == IS Model == |
| | | |
| + | The [[#IS_Model|Information System Model]] (henceforth IS Model) is a graph model with Entities as nodes and Relations as edges. |
| | | |
− | [[#IS_Model|IS Model]] is used by [[Information System Resource Registry]] | + | [[File:Is-model.png|800px]] |
| + | <br /> <br /> |
| + | [[File:Is-model-er.png|500px]] |
| | | |
| * Two typologies of '''entities''' are envisaged: | | * Two typologies of '''entities''' are envisaged: |
| ** '''[[#Resources | Resources]]''', i.e. entities representing a description of "thing" to be managed; | | ** '''[[#Resources | Resources]]''', i.e. entities representing a description of "thing" to be managed; |
− | *** Every Resource is characterised by a number of [[#Facets | Facets]]. | + | *** Every Resource is described by a number of [[#Facets | Facets]]. |
| ** '''[[#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; | | ** '''[[#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| properties]]; | | *** Every facet is characterised by a number of [[#Properties| properties]]; |
Line 19: |
Line 65: |
| * Two typologies of '''[[#Relations|relations]]''' are envisaged: | | * Two typologies of '''[[#Relations|relations]]''' are envisaged: |
| ** '''[[#isRelatedTo | isRelatedTo]]''', i.e. a relation linking any two [[#Resources | Resources]]. | | ** '''[[#isRelatedTo | isRelatedTo]]''', i.e. a relation linking any two [[#Resources | Resources]]. |
− | ** '''[[#consistsOf | consistsOf]]''', i.e. a relation connecting each [[#Resources | Resource]] with one of the [[#Facets | Facets]] characterizing it; | + | ** '''[[#ConsistsOf | ConsistsOf]]''', i.e. a relation connecting each [[#Resources | Resource]] with one of the [[#Facets | Facets]] characterizing it; |
| | | |
| * Each entity and relation | | * Each entity and relation |
Line 26: |
Line 72: |
| *** 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; | | *** 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. | | *** 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 [[#Property| properties]] which are not defined in the schema (henceforth schema-mixed mode). | + | * Facet and Relation instances can have additional [[#Properties| properties]] which are not defined in the schema (henceforth schema-mixed mode). |
| * On relations: | | * 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; | | ** 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; |
Line 32: |
Line 78: |
| *** 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 another one; |
| *** It is not permitted to define a Relation connecting a Facet with a Resource (as target); | | *** It is not permitted to define a Relation connecting a Facet with a Resource (as target); |
− | ** A Facet instance can be linked (by [[#consistsOf | consistsOf]] or any specialization of it) from different Resources. | + | ** A Facet instance can be linked (by [[#ConsistsOf | 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)”<ref>https://www.merriam-webster.com/dictionary/facet</ref>. |
| + | The Free Dictionary defines a facet as “One of numerous aspects, as of a subject” <ref>https://www.thefreedictionary.com/facet</ref>. |
| | | |
− | [[File:Is-model.png|800px]]
| |
− | <br /> <br />
| |
− | [[File:Is-model-er.png|500px]]
| |
| | | |
− | === Properties === | + | === Type Attributes === |
| | | |
− | Any Property can be enriched with the following attributes: | + | Any attribute defined in the type schema is characterised by: |
| | | |
| * '''Name''' : Property Name | | * '''Name''' : Property Name |
− | * '''Type''' : The Type of the Property (e.g. String, Integer, ...). It can be a [[#Basic_Types|Basic Type]] or a [[#Derived_Types|Derived Type]] or a [[#Complex_Types|Complex Type]] | + | * '''Type''' : The Type of the Property (e.g. String, Integer, ...). It can be a [[#Basic_Types|Basic Type]] or a [[#Derived_Types|Derived Type]] or a [[#Complex_Types|Complex Type]] |
| * '''Description''' : The description of the Property. <code>default=null</code>. | | * '''Description''' : The description of the Property. <code>default=null</code>. |
| * '''Mandatory''' ('''M'''): Indicate if the Property is mandatory. <code>default=false</code>. | | * '''Mandatory''' ('''M'''): Indicate if the Property is mandatory. <code>default=false</code>. |
Line 50: |
Line 96: |
| * '''Max''' ('''Max'''): <code>default=null</code> | | * '''Max''' ('''Max'''): <code>default=null</code> |
| * '''Min''' ('''Min'''): <code>default=null</code> | | * '''Min''' ('''Min'''): <code>default=null</code> |
− | * '''Regexpr''' ('''Reg''')): A [https://en.wikipedia.org/wiki/Regular_expression Regular Expression] to validate the property value, <code>default=null</code>. A good online tool for regex is avalable at [https://regex101.com/ https://regex101.com/] | + | * '''Regex''' ('''Reg''')): A [https://en.wikipedia.org/wiki/Regular_expression Regular Expression] to validate the property value, <code>default=null</code>. A good online tool for regex is avalable at [https://regex101.com/ https://regex101.com/] |
| | | |
| ==== Basic Types ==== | | ==== Basic Types ==== |
Line 90: |
Line 136: |
| | <code>java.lang.String</code> | | | <code>java.lang.String</code> |
| | Any string as alphanumeric sequence of chars. | | | Any string as alphanumeric sequence of chars. |
− | |-
| |
− | | Property
| |
− | | <code>? extends org.gcube.informationsystem.model.reference.properties.Property</code>
| |
− | | This is an Object contained inside the owner Entity and has no [[#Header|Header]]. It is reachable only by navigating the owner Entity.
| |
− | |-
| |
− | | <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 [[#Header|Header]]. They are reachable only by navigating the owner Entity.</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 [[#Header|Header]]. They are reachable only by navigating the owner Entity.</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 [[#Header|Header]]. They are reachable only by navigating the owner Entity.
| |
| |- | | |- |
| | Byte | | | Byte |
Line 141: |
Line 171: |
| | <code>java.net.URI</code> | | | <code>java.net.URI</code> |
| | String representation of the URI. No check actually. | | | 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<nowiki>|</nowiki>([1-9][0-9]{0,}))\.(0<nowiki>|</nowiki>([1-9][0-9]{0,}))$</code>'''. |
| |} | | |} |
| | | |
| ==== Complex Types ==== | | ==== Complex Types ==== |
| | | |
− | Any property defined by composing basic types derives from [[#Property|Property]] type. | + | Any property defined by composing basic types, complex types and other complex types. Any complex type can be defined by extending [[#Property|Property]] type. |
| + | |
| + | {|class="wikitable" |
| + | ! 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 [[#Header|Header]]. 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 [[#Header|Header]]. 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 [[#Header|Header]]. 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 [[#Header|Header]]. They are reachable only by navigating the owner Entity/Relation. |
| + | |} |
| | | |
| === Property === | | === Property === |
| | | |
− | It does not define any field. It is just used as a base class. It extends the very basic class named ''BaseProperty''. | + | It does not define any field. It is just used as a base class. |
| + | |
| + | The Java Interface declaration for such a type is available at: |
| + | |
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/properties/Property.java |
| | | |
| ===== Header ===== | | ===== Header ===== |
Line 156: |
Line 216: |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
− | |+ Header <code>''extends''</code> BaseProperty | + | |+ Header <code>''extends''</code> Property |
| ! Name | | ! Name |
| ! Type | | ! Type |
Line 165: |
Line 225: |
| | UUID | | | UUID |
| | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>ReadOnly=true</code> | | | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>ReadOnly=true</code> |
− | | This uuid can be used to univocally identify the Entity or the Relation | + | | This UUID is be used to identify the Entity or the Relation univocally. |
| |- | | |- |
− | | creator | + | | createdBy |
| | String | | | String |
| | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>ReadOnly=true</code> | | | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>ReadOnly=true</code> |
− | | Filled at creation time. The creator is retrieved using the authorization token | + | | The user that created the Entity or the Relation. It is initialized at creation time. |
− | |-
| + | |
− | | modifiedBy
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | At creation time it assumes the same value of creator. The modifier is retrieved using the authorization token
| + | |
| |- | | |- |
| | creationTime | | | creationTime |
| | Date | | | Date |
| | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>ReadOnly=true</code> | | | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>ReadOnly=true</code> |
− | | Creation time in milliseconds. Represent the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970 UTC | + | | Creation time. |
| + | |- |
| + | | lastUpdateBy |
| + | | String |
| + | | <code>Mandatory=true</code> <br/><code>NotNull=true</code> |
| + | | The user that made the last update to the Entity or the Relation. At creation time, it assumes the same value of creator. |
| |- | | |- |
| | lastUpdateTime | | | lastUpdateTime |
| | Date | | | Date |
| | <code>Mandatory=true</code> <br/><code>NotNull=true</code> | | | <code>Mandatory=true</code> <br/><code>NotNull=true</code> |
− | | Last Update time in milliseconds. At creation time it assumes the same value of creationTime. Represent the difference, measured in milliseconds, between the last update time and midnight, January 1, 1970 UTC | + | | Last Update time. At creation time it assumes the same value of creationTime. |
| |} | | |} |
| + | |
| + | |
| + | The Java Interface declaration for such a type is available at: |
| + | |
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/properties/Header.java |
| | | |
| ===== PropagationConstraint ===== | | ===== PropagationConstraint ===== |
| + | |
| + | At any time entities and relations can be added or removed to/from a context or deleted. |
| + | The PropagationConstraint property contained in each relation is a predefined Property type which indicates the behaviour to be held on a target entity when an event related to a context occurs in the source resource or directly to the relation. |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
Line 200: |
Line 268: |
| | Enum | | | Enum |
| | <code>Regex=(cascadeWhenOrphan<nowiki>|</nowiki>cascade<nowiki>|</nowiki>keep)</code> | | | <code>Regex=(cascadeWhenOrphan<nowiki>|</nowiki>cascade<nowiki>|</nowiki>keep)</code> |
− | | i.e. Indicate the behaviour to ResourceRegistry to be applyed to the target Entity when the source Entity is remove from context or deleted | + | | It indicates the behaviour to implement for the target Entity when a 'remove' action is performed on the source Resource. Remove actions are: (i) the operation of removing an instance from a context; (ii) the operation of deleting an instance (it has an impact on all contexts). |
| |- | | |- |
| | add | | | add |
| | Enum | | | Enum |
| | <code>Regex=(propagate<nowiki>|</nowiki>unpropagate)</code> | | | <code>Regex=(propagate<nowiki>|</nowiki>unpropagate)</code> |
− | | i.e. Indicate the behaviour to ResourceRegistry to be applyed to the target Entity when the source Entity is added to Context | + | | 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. |
| |} | | |} |
| | | |
− | Any [[#Relation|Relation]] contains such a property. If the values are not specified at creation time the system initialize it with the following rules:
| |
| | | |
− | * [[#consistsOf | ConsistsOf Relation]] : <code>remove=cascadeWhenOrphan</code>, <code>add=propagate</code> | + | Remove values; |
− | * [[#isRelatedTo | IsRelatedTo Relation]] : <code>remove=keep</code>, <code>add=unpropagate</code> | + | * cascadeWhenOrphan: When a remove action is performed on the source Entity of the relation, or directly on the relation, then the same remove action apart on the relation is performed to the target entity if it has no other incoming relations. |
| + | * cascade: When a remove action is performed on the source Entity of the relation, or directly on the relation, then the same remove action is performed on the relation and its target entity. |
| + | * keep: When a remove action is performed on the source Entity of the relation, or directly on the relation, then the same remove action is performed on relation but never to the target entity. |
| | | |
− | ===== Encrypted =====
| |
| | | |
− | {|class="wikitable"
| + | Add values; |
− | |+ Encrypted <code>''extends''</code> Property
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | value
| + | |
− | | String
| + | |
− | |
| + | |
− | | The encrypted value. The resource registry store safely the value. When received the value is decrypted using the key of current context and store the value safely. When the value is read, the resource-registry retrieve the value and encrypt it with the key of current context.
| + | |
− | |}
| + | |
| | | |
− | === Entity ===
| + | * propagate: When an 'add' action is performed on the source Entity of the relation, or directly on the relation, then the same add action is performed on the relation and its target Entity. |
| + | * unpropagate: When an 'add' action is performed on the source Entity of the relation, is performed on source relation only. Trying to perform an 'add' action on the relation has no effects. |
| | | |
− | ==== Resource ====
| |
− | {| class="wikitable"
| |
− | |+ <code>Abstract</code> Resource
| |
− | |-
| |
− | | colspan=5 | '''Scope:''' This entity is conceived to describe every "main thing" to be registered and discovered by the Information System.
| |
− | |-
| |
− | ! Source
| |
− | ! Relation
| |
− | ! Multiplicity
| |
− | ! Target
| |
− | ! Description
| |
− | |-
| |
− | ! colspan=5 | Facets
| |
− | |-
| |
− | | [[#Resource|Resource]]
| |
− | | [[#isIdentifiedBy_.28def.29|isIdentifiedBy]]
| |
− | | align=center | 1..n
| |
− | | [[#Facet|Facet]]
| |
− | | Any Resource has at least one Facet which in some way allow to identify the Resource per se.
| |
− | |-
| |
− | | [[#Resource|Resource]]
| |
− | | [[#consistsOf|consistsOf]]
| |
− | | align=center | 0..n
| |
− | | [[#Facet|Facet]]
| |
− | | Any Resource consist of zero or more Facets which describes the different aspects of the facet.
| |
− | |-
| |
− | ! colspan=5 | Relations
| |
− | |-
| |
− | | [[#Resource|Resource]]
| |
− | | [[#isRelatedTo|isRelatedTo]]
| |
− | | align=center | 0..n
| |
− | | [[#Resource|Resource]]
| |
− | | Any Resource can be related to any other resource.
| |
− | |}
| |
| | | |
− | ==== Facet ====
| + | Any [[#Relation|Relation]] contains such a property. If the values are not specified at creation time the system initialize it with the following rules: |
| | | |
− | Facets are collections of attributes conceived to capture a certain feature / aspect of the [[#Resource | Resource]] they are associated with.
| + | * [[#ConsistsOf | ConsistsOf Relation]] : <code>remove=cascade</code>, <code>add=propagate</code> |
| + | * [[#isRelatedTo | IsRelatedTo Relation]] : <code>remove=keep</code>, <code>add=unpropagate</code> |
| | | |
− | Every Facet has:
| |
− | * An [[#Header|Header]] automatically generated to capture identification- and provenace-related aspects of the facet once it is instantiated;
| |
− | * Zero or more [[#Property|properties]]. Besides the per-facet envisaged properties, clients can add new ones.
| |
| | | |
− | === Relation ===
| + | The Java Interface declaration for such a type is available at: |
| | | |
− | Every relation has:
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/properties/PropagationConstraint.java |
− | * An [[#Header | Header]]
| + | |
− | * A [[#PropagationConstraint|PropagationConstraint]]
| + | |
− | * Zero or More [[#Property|properties]] (not necessarily predefined, similarly to [[#Facets|Facets]]).
| + | |
| | | |
− | ==== isRelatedTo ==== | + | ===== Encrypted ===== |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
− | |+ isRelatedTo | + | |+ Encrypted <code>''extends''</code> Property |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#isRelatedTo|isRelatedTo]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | A relation linking any two [[#Resources|Resources]].
| + | |
− | |}
| + | |
− | | + | |
− | ==== consistsOf ====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isIdentifiedBy
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Facet|Facet]]
| + | |
− | | A relation connecting each [[#Resource|Resource]] with one of the [[#Facet|Facet]] characterizing it.
| + | |
− | |}
| + | |
− | | + | |
− | === Internal Entity and Relation ===
| + | |
− | | + | |
− | For internal use only are defined the following entity and relation:
| + | |
− | | + | |
− | * [[#Context|Context]]
| + | |
− | * [[#isParentOf|isParentOf]]
| + | |
− | | + | |
− | ==== Context ====
| + | |
− | | + | |
− | Model a Context (aka scope) in the same Application Domain.
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ Context
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' Models a Context (aka scope).
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | name
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | The name of the context. Two [[#Context|Context]] with the same name can exist but they cannot have the same parent. In other words, a [[#Context|Context]] cannot have two children with the same name.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Context|Context]]
| + | |
− | | [[#isParentOf|isParentOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Context|Context]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ==== isParentOf ====
| + | |
− | | + | |
− | This relation has no propagation constraint.
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Context|Context]]
| + | |
− | | [[#isParentOf|isParentOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Context|Context]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | === Best practices and guidelines ===
| + | |
− | | + | |
− | * On Facet instances "reuse" across Resource Profiles:
| + | |
− | ** This can be guaranteed automatically by the system, if and just in the case the system wants to avoid duplication of information. It is based on a configuration policy;
| + | |
− | ** This MUST be done only when a change in a facet instance MUST affect a change in all Resources connected to such a Facet.
| + | |
− | | + | |
− | == gCube Model ==
| + | |
− | | + | |
− | gCube Model is a resource model built on top of [[#IS_Model| IS Model]] which captures the different aspects of the resources and their relations playing significant roles in a research infrastructure empowered by gCube.
| + | |
− | | + | |
− | | + | |
− | === Overview of gCube Model Resources and (isRelatedTo) Relations ===
| + | |
− | | + | |
− | [[File:Gcube-reources-and-isrelatedto-relations.png|1024px]]
| + | |
− | | + | |
− | === gCube Model Properties ===
| + | |
− | | + | |
− | ==== ValueSchema ====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ ValueSchema <code>''extends''</code> Property
| + | |
| ! Name | | ! Name |
| ! Type | | ! Type |
Line 407: |
Line 311: |
| | String | | | String |
| | | | | |
− | | | + | | The encrypted value. The resource registry store safely the value. When received the value is decrypted using the key of current context and store the value safely. When the value is read, the resource-registry retrieve the value and encrypt it with the key of current context. |
− | |-
| + | |
− | | schema
| + | |
− | | URI
| + | |
− | |
| + | |
− | |
| + | |
| |} | | |} |
| | | |
− | ==== AccessPolicy ====
| + | The Java Interface declaration for such a type is available at: |
| | | |
− | {|class="wikitable"
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/properties/Encrypted.java |
− | |+ AccessPolicy <code>''extends''</code> Property
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | policy
| + | |
− | | Property (i.e. [[#ValueSchema|ValueSchema]])
| + | |
− | |
| + | |
− | |
| + | |
− | |-
| + | |
− | | note
| + | |
− | | String
| + | |
− | |
| + | |
− | |
| + | |
− | |}
| + | |
| | | |
− | === Facets === | + | === Entity === |
| | | |
− | Early ideas and thinking on facets were documented at [[Resource_Model_(2nd_generation)#Facets | 2nd Generation Resource Model : Facets]]
| |
− |
| |
− |
| |
− | ==== Access Point Facet ====
| |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
− | |+ Access Point Facet <code>''extends''</code> [[#Facet|Facet]] | + | |+ <code>Abstract</code> Entity |
| |- | | |- |
− | | colspan=5| '''Goal:''' This facet captures information on an “access point” of a resource, i.e. any web-based endpoint to programmatically interact with the resource via a known protocol. | + | | colspan=5 | '''Goal:''' This is the base type for any entity. |
| |- | | |- |
| ! colspan=5 | Properties | | ! colspan=5 | Properties |
Line 454: |
Line 333: |
| ! colspan=2 | Description | | ! colspan=2 | Description |
| |- | | |- |
− | | entryName | + | | header |
− | | String | + | | [[#Header | Header]] |
− | | | + | | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>ReadOnly=true</code> |
| | colspan=2 | A distinguishing string to be used by clients to identify the access point of interest. | | | colspan=2 | A distinguishing string to be used by clients to identify the access point of interest. |
− | |-
| |
− | | endpoint
| |
− | | URI
| |
− | | <code>Mandatory=true</code> <br/><code>ReadOnly=true</code> <br/><code>NotNull=true</code>
| |
− | | colspan=2 | The URI which characterizes the specific endpoint instance.
| |
− | |-
| |
− | | protocol
| |
− | | String
| |
− | |
| |
− | | colspan=2 | The high-level protocol used by the access point. The String could contains the version if needed. E.g. WMS not http which is already contained in URI.
| |
− | |-
| |
− | | description
| |
− | | String
| |
− | |
| |
− | | colspan=2 | A human oriented text accompanying the access point.
| |
− | |-
| |
− | | authorization
| |
− | | [[#Property|Property]]
| |
− | |
| |
− | | colspan=2 | Contains authorization information. E.g: a token, username and password.
| |
− | |-
| |
− | ! colspan=5 | Known Usage
| |
− | |-
| |
− | ! Source
| |
− | ! Relation
| |
− | ! Multiplicity
| |
− | ! Target
| |
− | ! Description
| |
− | |-
| |
− | | [[#Dataset|Dataset]]
| |
− | | [[#consistsOf|consistsOf]]
| |
− | | align=center | 0..n
| |
− | | [[#Access_Point_Facet|Access Point Facet]]
| |
− | | Each access point captures a possible web-based method for accessing the dataset. Any embargo-related information can be captured by the access policy property of the [[#consistsOf|consistsOf]].
| |
− | |-
| |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| |
− | | [[#consistsOf|consistsOf]]
| |
− | | align=center | 1..n
| |
− | | [[#Access_Point_Facet|Access Point Facet]]
| |
− | | Each access point captures a possible web-based method for accessing the dataset. Any embargo-related information can be captured by the access policy property of the [[#consistsOf|consistsOf]].
| |
− | |-
| |
− | | [[#EService|EService]]
| |
− | | [[#consistsOf|consistsOf]]
| |
− | | align=center | 1..n
| |
− | | [[#Access_Point_Facet|Access Point Facet]]
| |
− | | Each access point captures a possible web-based method for accessing the service.
| |
− | |-
| |
− | | [[#Software|Software]]
| |
− | | [[#consistsOf|consistsOf]]
| |
− | | align=center | 1..n
| |
− | | [[#Access_Point_Facet|Access Point Facet]]
| |
− | | Each access point captures a possible web-based method for accessing a software manifestation. Examples are links to maven artifact on nexus, javadoc, wiki, svn, etc.
| |
| |} | | |} |
| | | |
− | ==== Capability Facet ====
| + | The Java Interface declaration for such a type is available at: |
| | | |
− | {|class="wikitable"
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/entities/Entity.java |
− | |+ Capability Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures a defined facility for performing a specified task supported by a given [[#Service|Service]] or [[#Software|Software]];
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | name
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>ReadOnly=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The distinguishing name of the capability.
| + | |
− | |-
| + | |
− | | description
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | A human oriented description of the capability.
| + | |
− | |-
| + | |
− | | qualifier
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | A string used to specialize the capability.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#hasCapability|hasCapability]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Capability_Facet|Capability Facet]]
| + | |
− | | To capture one of the facilities supported by the Service.
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#hasCapability|hasCapability]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Capability_Facet|Capability Facet]]
| + | |
− | | To capture one of the facilities supported by the Software.
| + | |
− | |-
| + | |
− | |}
| + | |
| | | |
− | ==== Contact Facet ==== | + | ==== Resource ==== |
| | | |
− | {|class="wikitable" | + | {| class="wikitable" |
− | |+ Contact Facet <code>''extends''</code> [[#Facet|Facet]] | + | |+ <code>Abstract</code> Resource '''<code>extends</code>''' [[#Entity|Entity]] |
| |- | | |- |
− | | colspan=5 | '''Goal:''' This facet captures information on a ''point of contact'' for the resource, i.e. a person or a department serving as the coordinator or focal point of information concerning the resource. As you can see in the known usages part, there are diverse points of contact that can be associated to a given resource and the role of the association is captured by using a specific relation. | + | | colspan=5 | '''Scope:''' This entity is conceived to describe every "main thing" to be registered and discovered by the Information System. |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | title
| + | |
− | | String
| + | |
− | | <code>Mandatory=false</code>
| + | |
− | | colspan=2 | A name describing the profession or marital status of the point of contact. E.g. Dr, Mrs, Mr.
| + | |
− | |-
| + | |
− | | name
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | First Name
| + | |
− | |-
| + | |
− | | middleName
| + | |
− | | String
| + | |
− | | <code>Mandatory=false</code>
| + | |
− | | colspan=2 | Middle Name
| + | |
− | |-
| + | |
− | | surname
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | Surname
| + | |
− | |-
| + | |
− | | eMail
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>Regex=<nowiki>^[a-z0-9._%+-]{1,128}@[a-z0-9.-]{1,128}</nowiki></code>
| + | |
− | | colspan=2 | A restricted range of RFC‑822 compliant email address. Please note that just domain based email address are accepted (not IP based). Please also note that new TLD are also accepted (e.g luca@google without .com which is a valid email address). You can test here the provided regular expression with your input email address https://regex101.com/ before open a ticket.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
| |- | | |- |
| ! Source | | ! Source |
| ! Relation | | ! Relation |
− | ! Multiplicity | + | ! Multiplicity |
| ! Target | | ! Target |
| ! Description | | ! Description |
| |- | | |- |
− | | [[#Actor|Actor]]
| + | ! colspan=5 | Facets |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | An Actor must have at least a primary point of contact which will be used for identification purposes. | + | |
| |- | | |- |
− | | [[#Actor|Actor]] | + | | [[#Resource|Resource]] |
− | | [[#hasContact|hasContact]] | + | | [[#ConsistsOf|ConsistsOf]] |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | An Actor can have an arbitrary number of points of contact which provide secondary contact information.
| + | |
− | |-
| + | |
− | | [[#Legal_Body|Legal Body]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
| | align=center | 1..n | | | align=center | 1..n |
− | | [[#Contact_Facet|Contact Facet]] | + | | [[#Facet|Facet]] |
− | | A Legal Body must have at least a point of contact which permit to identify the Legal Body per se. | + | | Any Resource consists of one or more Facets that describes the different aspects of the resource. |
| |- | | |- |
− | | [[#Person|Person]]
| + | ! colspan=5 | Relations |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | A Person must have at least a point of contact which permit to identify the Person per se. | + | |
| |- | | |- |
− | | [[#Dataset|Dataset]] | + | | [[#Resource|Resource]] |
− | | [[#hasContact|hasContact]] | + | | [[#isRelatedTo|isRelatedTo]] |
− | | align=center | 1..n
| + | | align=center | 0..n |
− | | [[#Contact_Facet|Contact Facet]]
| + | | [[#Resource|Resource]] |
− | | A Dataset must have at least a point of contact to be used to acquire information on it.
| + | | Any Resource can be related to any other resource. |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasContributor|hasContributor]]
| + | |
− | | align=center | 0..n | + | |
− | | [[#Contact_Facet|Contact Facet]] | + | |
− | | One of the dataset contributors. | + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasCreator|hasCreator]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | One of the dataset creators.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasCurator|hasCurator]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | One of the dataset curators.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasMaintainer|hasMaintainer]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | One of the dataset maintainers.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasOwner|hasOwner]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | One of the dataset owners.
| + | |
− | |-
| + | |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| + | |
− | | [[#hasMaintainer|hasMaintainer]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | A Concrete Dataset must have at least a Maintainer.
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#hasContact|hasContact]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | A Site must have at least a point of contact to be used to acquire information on it.
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#hasContact|hasContact]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | A Site must have at least a point of contact to be used to acquire information on it.
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#hasMaintainer|hasMaintainer]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | A Site must have at least a Maintainer.
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#hasManager|hasManager]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | A Site must have at least a Manager.
| + | |
| |} | | |} |
| | | |
− | ==== Contact Reference Facet ====
| + | The Java Interface declaration for such a type is available at: |
| | | |
− | {|class="wikitable"
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/entities/Resource.java |
− | |+ Contact Reference Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on the primary and authoritative contact for the resource it is associated with.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description.
| + | |
− | |-
| + | |
− | | website
| + | |
− | | URL
| + | |
− | |
| + | |
− | | colspan=2 | The main website.
| + | |
− | |-
| + | |
− | | address
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | A physical address.
| + | |
− | |-
| + | |
− | | phoneNumber
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | A phone number.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Actor|Actor]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Reference_Facet|Contact Reference Facet]]
| + | |
− | | The primary contact information for the Actor it is attached to.
| + | |
− | |-
| + | |
− | | [[#Legal_Body|Legal Body]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Reference_Facet|Contact Reference Facet]]
| + | |
− | | The primary contact information for the Legal Body it is attached to.
| + | |
− | |-
| + | |
− | | [[#Person|Person]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Reference_Facet|Contact Reference Facet]]
| + | |
− | | The primary contact information for the Person it is attached to.
| + | |
− | |}
| + | |
| | | |
− | ==== Coverage Facet ==== | + | ==== Facet ==== |
| | | |
− | {|class="wikitable"
| + | Early ideas and thinking on facets were documented at [[Resource_Model_(2nd_generation)#Facets | 2nd Generation Resource Model: Facets]] |
− | |+ Coverage Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on the ''extent'' of the Resource, i.e. any aspect aiming at capturing an indicator of the amount/area the resource covers be it a geospatial area, a temporal area, or any other "area".
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | value
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The amount indicating the "area" covered by the dataset according to the reference schema.
| + | |
− | |-
| + | |
− | | schema
| + | |
− | | URI
| + | |
− | | <code>Mandatory=true</code> <br/> <code>NotNull=true</code>
| + | |
− | | The reference schema to be used to interpret the value.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasCoverage|hasCoverage]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasTemporalCoverage|hasTemporalCoverage]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | Any temporal coverage characterising the dataset content.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasSpatialCoverage|hasSpatialCoverage]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | Any spatial coverage characterising the dataset content.
| + | |
− | |}
| + | |
| | | |
− | ==== CPU Facet ====
| + | Facets are collections of attributes conceived to capture a certain feature/aspect of the [[#Resource | Resource]] they are associated with. |
| + | Every facet can define zero or more [[#Property|properties]]. Besides the per-facet envisaged properties, clients can add new ones. |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
− | |+ CPU Facet <code>''extends''</code> [[#Facet|Facet]] | + | |+ <code>Abstract</code> Facet '''<code>extends</code>''' [[#Entity|Entity]] |
| |- | | |- |
− | | colspan=5 | '''Goal:''' This facet captures information on the Central Processing Unit of the resource it is associated. | + | | colspan=5 | '''Goal:''' This is the base type for any Facet. |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | model
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | CPU Model.
| + | |
− | |-
| + | |
− | | vendor
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | CPU Vendor.
| + | |
− | | + | |
− | |-
| + | |
− | | clockSpeed
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | Clock Speed with the unit.
| + | |
| |- | | |- |
| ! colspan=5 | Known Usage | | ! colspan=5 | Known Usage |
Line 846: |
Line 397: |
| ! Description | | ! Description |
| |- | | |- |
− | | [[#Hosting_Node|Hosting Node]] | + | | [[#Resource|Resource]] |
− | | [[#consistsOf|consistsOf]] | + | | [[#ConsistsOf|ConsistsOf]] |
| | align=center | 1..n | | | align=center | 1..n |
− | | [[#CPU_Facet|CPU Facet]] | + | | [[#Facet|Facet]] |
− | | ... | + | | Any Resource consist of one or more Facets which describes the different aspects of the resource. |
| |} | | |} |
| | | |
− | ==== Descriptive Metadata Facet ====
| |
| | | |
− | {|class="wikitable"
| + | The Java Interface declaration for such a type is available at: |
− | |+ Descriptive Metadata Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on descriptive metadata to be associated with the resource.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | value
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | A metadata record representing the descriptive metadata and encoded according to the reference schema;
| + | |
− | |-
| + | |
− | | schema
| + | |
− | | URI
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The reference schema to be used to interpret the value attribute;
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Descriptive_Metadata_Facet|Descriptive Metadata Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Descriptive_Metadata_Facet|Descriptive Metadata Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
| | | |
− | ==== Event Facet ====
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/entities/Facet.java |
| | | |
− | {|class="wikitable"
| + | === Relation === |
− | |+ Event Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on a certain event / happening characterising the life cycle of the resource.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | date
| + | |
− | | Calendar
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The time the event took place / occurred.
| + | |
− | |-
| + | |
− | | value
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The typology of event according to the reference schema.
| + | |
− | |-
| + | |
− | | schema
| + | |
− | | URI
| + | |
− | |
| + | |
− | | colspan=2 | The reference schema to be used to interpret the value describing the event.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Event_Facet|Event Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Event_Facet|Event Facet]]
| + | |
− | | E.g. ActivationTime, DeploymentTime.
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Event_Facet|Event Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
| | | |
− | ==== Identifier Facet ====
| + | Every relation has: |
| + | * An [[#Header | Header]] |
| + | * A [[#PropagationConstraint|PropagationConstraint]] |
| + | * Zero or More [[#Property|properties]] (not necessarily predefined, similarly to [[#Facets|Facets]]). |
| | | |
− | {|class="wikitable"
| + | The Java Interface declaration for such a type is available at: |
− | |+ Identifier Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/relations/Relation.java |
− | | colspan=5 | '''Goal''': This facet captures information on Identifiers (other than the ones automatically generated by the system) that can be attached to a resource.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | value
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The identifier. E.g. http://fr.dbpedia.org/resource/Thunnus de305d54-75b4-431b-adb2-eb6b9e546014
| + | |
− | |-
| + | |
− | | type
| + | |
− | | Enumeration
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The typology of identifier. I.e. URI, DOI, IRI, URL, URN, UUID.
| + | |
− | |-
| + | |
− | | isPersistent
| + | |
− | | boolean
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | To indicate whether the Identifier is persistent or not.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Configuration|Configuration]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
| | | |
− | ==== License Facet ==== | + | ==== IsRelatedTo ==== |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
− | |+ License Facet <code>''extends''</code> [[#Facet|Facet]] | + | |+ IsRelatedTo <code>''extends''</code> Relation |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on any license associated with the resource to capture the policies governing its exploitation and use.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | name
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The common name of the license. E.g. EUPL 1.1, GPLv2, BSD.
| + | |
− | |-
| + | |
− | | textURL
| + | |
− | | URL
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The URL to the actual text of the license.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
| |- | | |- |
| ! Source | | ! Source |
Line 1,054: |
Line 431: |
| ! Description | | ! Description |
| |- | | |- |
− | | [[#Dataset|Dataset]] | + | | [[#Resources|Resource]] |
− | | [[#consistsOf|consistsOf]] | + | | [[#IsRelatedTo|IsRelatedTo]] |
| | align=center | 0..n | | | align=center | 0..n |
− | | [[#License_Facet|License Facet]] | + | | [[#Resources|Resource]] |
− | | The duration of license - if any - can be captured by the expiry date defined in the [[#consistsOf|consistsOf]] relation. | + | | A relation linking any two [[#Resources|Resources]]. |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#License_Facet|License Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#License_Facet|License Facet]]
| + | |
− | | ...
| + | |
| |} | | |} |
| | | |
− | ==== Location Facet ====
| + | The Java Interface declaration for such a type is available at: |
| | | |
− | The goal of this facet is to collect information about Location
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/relations/IsRelatedTo.java |
| | | |
− | {|class="wikitable"
| + | ==== ConsistsOf ==== |
− | |+ Location Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on a physical area characterising the resource it is associated with. This should not be confused with [[#Coverage_Facet|Coverage Facet]].
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | country
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | The English name of the country. See [http://data.okfn.org/data/core/country-list|http://data.okfn.org/data/core/country-list].
| + | |
− | |-
| + | |
− | | location
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | The City name.
| + | |
− | |-
| + | |
− | | latitude
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | Latitude.
| + | |
− | |-
| + | |
− | | longitude
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | Longitude.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Location_Facet|Location Facet]]
| + | |
− | | The base where the site is operated.
| + | |
− | |}
| + | |
− | | + | |
− | ==== Memory Facet ====
| + | |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
− | |+ Memory Facet <code>''extends''</code> [[#Facet|Facet]] | + | |+ ConsistsOf <code>''extends''</code> Relation |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on computer memory equipping the resource and its usage.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | size
| + | |
− | | Long
| + | |
− | | <code>Mandatory=true</code> <code>NotNull=true</code>
| + | |
− | | colspan=2 | Total amount of memory.
| + | |
− | |-
| + | |
− | | used
| + | |
− | | Long
| + | |
− | | <code>Mandatory=true</code> <code>NotNull=true</code>
| + | |
− | | colspan=2 | Used amount of memory.
| + | |
− | |-
| + | |
− | | unit
| + | |
− | | Enum
| + | |
− | | <code>Mandatory=true</code> <code>NotNull=true</code>
| + | |
− | | colspan=2 | The unit of measure used to report size and used attributes. Allowed values are Byte, kB (kilobyte 10^3), MB (megabyte 10^6), GB (gigabyte 10^9), TB (terabyte 10^12), PB (petabyte 10^15), EB (exabyte 10^18), ZB (zettabyte 10^21), YB (yottabyte 10^24).
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
| |- | | |- |
| ! Source | | ! Source |
Line 1,161: |
Line 453: |
| ! Description | | ! Description |
| |- | | |- |
− | | [[#Hosting_Node|Hosting Node]] | + | | [[#Resources|Resource]] |
− | | [[#hasPersistentMemory|hasPersistentMemory]] | + | | [[#ConsistsOf|ConsistsOf]] |
| | align=center | 1..n | | | align=center | 1..n |
− | | [[#Memory_Facet|Memory Facet]] | + | | [[#Facet|Facet]] |
− | | The Disk Space allocated to the hosting node. | + | | A relation connecting each [[#Resource|Resource]] with one of the [[#Facet|Facet]] characterizing it. |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#hasVolatileMemory|hasVolatileMemory]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Memory_Facet|Memory Facet]]
| + | |
− | | The RAM allocated to the hosting node.
| + | |
| |} | | |} |
| | | |
− | ==== Networking Facet ====
| |
| | | |
− | {|class="wikitable"
| + | The Java Interface declaration for such a type is available at: |
− | |+ Networking Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on any (computer) network interface/access point associated with the resource.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | hostName
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | Host Name.
| + | |
− | |-
| + | |
− | | domainName
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | Domain Name.
| + | |
− | |-
| + | |
− | | IPAddress
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/>
| + | |
− | <code>NotNull=true</code> <br/>
| + | |
− | <code>Regex=<nowiki>'/^(?>(?>([a-f0-9]{1,4})(?>:(?1)){7}|(?!(?:.*[a-f0-9](?>:|$)){8,})((?1)(?>:(?1)){0,6})?::(?2)?)|(?>(?>(?1)(?>:(?1)){5}:|(?!(?:.*[a-f0-9]:){6,})(?3)?::(?>((?1)(?>:(?1)){0,4}):)?)?(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?>\.(?4)){3}))$/iD'</nowiki></code>
| + | |
− | | colspan=2 | IP Address. Validation regular expression ca be foun at http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses#answer-1934546 (Michael Rushton solution).
| + | |
− | |-
| + | |
− | | mask
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | Network Mask.
| + | |
− | |-
| + | |
− | | broadcastAddress
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | Broadcast Address.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Networking_Facet|Networking Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Networking_Facet|Networking Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
| | | |
− | ==== Provenance Facet ====
| + | https://code-repo.d4science.org/gCubeSystem/information-system-model/src/branch/master/src/main/java/org/gcube/informationsystem/model/reference/relations/ConsistsOf.java |
| | | |
− | {| class="wikitable"
| + | === Internal Entity and Relation === |
− | |+ Provenance Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on provenance/lineage of the entire resource.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | relationship
| + | |
− | | Enum
| + | |
− | |
| + | |
− | | colspan=2 | I.e. wasDerivedFrom, wasGeneratedBy
| + | |
− | |-
| + | |
− | | reference
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | resourceID (a reference to the "originator" Resource associated to the resource the facet is attached to by the relationship)
| + | |
− | |-
| + | |
− | | document
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | Provenance Document E.g. the xml format
| + | |
− | |-
| + | |
− | | documentSchema
| + | |
− | | URI
| + | |
− | |
| + | |
− | | colspan=2 | Document Schema E.g. a reference to the format
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Provenance_Facet|Provenance Facet]]
| + | |
− | |}
| + | |
| | | |
− | ==== Schema Facet ====
| + | For internal use only are defined the following entity and relation: |
| | | |
− | {|class="wikitable"
| + | * [[#Context|Context]] |
− | |+ <code>Abstract</code> Schema Facet <code>''extends''</code> [[#Facet|Facet]]
| + | * [[#IsParentOf|IsParentOf]] |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on any schema associated with a resource.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | name
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | Schema Name
| + | |
− | |-
| + | |
− | | description
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | Schema Description
| + | |
− | |-
| + | |
− | | schemaURL
| + | |
− | | URL
| + | |
− | |
| + | |
− | | colspan=2 | Schema definition URL (recommended)
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Schema_Facet|Schema Facet]]
| + | |
− | |}
| + | |
| | | |
− | ===== JSON Schema Facet ===== | + | ==== Context ==== |
| | | |
− | Even is still under standardization (seems stalled) IETF is promoting a de-facto standard for JSON http://json-schema.org/.
| + | Model a Context (aka scope) in the same Application Domain. |
− | https://tools.ietf.org/html/draft-zyp-json-schema-04
| + | |
− | https://tools.ietf.org/html/draft-fge-json-schema-validation-00
| + | |
− | https://tools.ietf.org/html/draft-luff-json-hyper-schema-00
| + | |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
− | |+ JSON Schema Facet <code>''extends''</code> [[#Schema_Facet|Schema Facet]] | + | |+ Context |
| |- | | |- |
− | | colspan=5 | '''Goal:''' This facet captures information on a JSON schema associated with a resource. | + | | colspan=5 | '''Goal:''' Models a Context (aka scope). |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | content
| + | |
− | | Property
| + | |
− | | <code>Mandatory=true</code> <br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | JSON schema definition.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#JSON_Schema_Facet|JSON Schema Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ===== XSD Schema Facet =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ XSD Schema Facet <code>''extends''</code> [[#Schema_Facet|Schema Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on any XML Schema Definition (XSD) associated with the resource.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | content
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | XSD Schema Definition
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#XSD_Schema_Facet|XSD Schema Facet]]
| + | |
− | |}
| + | |
− | | + | |
− | ==== Simple Facet ====
| + | |
− | | + | |
− | Please do not use this Facet. Create your own type.
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ Simple Property Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet is used by IS-Exporter to export old GenericResource as [[#Configuration|Configuration]]
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! colspan=5 | No property defined
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Configuration|Configuration]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Simple_Facet|Simple Facet]]
| + | |
− | | Used by IS-Exporter to export old GenericResource as [[#Configuration|Configuration]]
| + | |
− | |}
| + | |
− | | + | |
− | ==== Simple Property Facet ====
| + | |
− | | + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ Simple Property Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on any property by a simple name-value pair.
| + | |
| |- | | |- |
| ! colspan=5 | Properties | | ! colspan=5 | Properties |
Line 1,445: |
Line 491: |
| | String | | | String |
| | <code>Mandatory=true</code> <br/> <code>NotNull=true</code> | | | <code>Mandatory=true</code> <br/> <code>NotNull=true</code> |
− | | colspan=2 | Name | + | | colspan=2 | The name of the context. Two [[#Context|Context]] with the same name can exist but they cannot have the same parent. In other words, a [[#Context|Context]] cannot have two children with the same name. |
− | |- | + | |
− | | value | + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | Value
| + | |
| |- | | |- |
| ! colspan=5 | Known Usage | | ! colspan=5 | Known Usage |
Line 1,460: |
Line 501: |
| ! Description | | ! Description |
| |- | | |- |
− | | [[#Configuration_Template|Configuration Template]] | + | | [[#Context|Context]] |
− | | [[#consistsOf|consistsOf]] | + | | [[#IsParentOf|IsParentOf]] |
− | | align=center | 1..n
| + | |
− | | [[#Simple_Property_Facet|Simple Property Facet]]
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
| | align=center | 0..n | | | align=center | 0..n |
− | | [[#Simple_Property_Facet|Simple Property Facet]] | + | | [[#Context|Context]] |
− | | E.g. to model [https://en.wikipedia.org/wiki/Environment_variable Environment Variables]
| + | |
− | |}
| + | |
− | | + | |
− | ==== Software Facet ====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ Software Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on any software associated with the resource.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | name
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code><br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | The name of the software artefact being described. E.g. artifactId in maven, Service Name in gCube software, the software name for retail software Microsoft '''Office''' 2013-SP2.
| + | |
− | |-
| + | |
− | | group
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | The name of "group" the software artefact belongs to. E.g. groupId in Maven, ServiceClass in gCube software, company name for retail software '''Microsoft''' Office 2013-SP2.
| + | |
− | |-
| + | |
− | | version
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code><br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The particular release of the software artefact. E.g. maven version, Service Version in gCube software, artifactId in maven, the software version for retail software Microsoft Office '''2013-SP2'''.
| + | |
− | |-
| + | |
− | | description
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | A human oriented description of the software artefact being described.
| + | |
− | |-
| + | |
− | | qualifier
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | E.g. packaging or scope in maven, scope level or sharable level in gCube software, target architecture for retail software x86 or amd64.
| + | |
− | |-
| + | |
− | | optional
| + | |
− | | Boolean
| + | |
− | |
| + | |
− | | colspan=2 | E.g. used to indicate an optional dependency both in maven as far as in gCube.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | The software enabling the EService capabilities
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | Software available in the EService environment that characterizes the specific EService instance.
| + | |
− | |-
| + | |
− | | [[#Running_Plugin|Running Plugin]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..1
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | The software enabling the Running Plugin.
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | E.g. to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System.
| + | |
− | |-
| + | |
− | | [[#Virtual_Service|Virtual Service]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | Software coordinates which identify the Software per se.
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | Any other software apart from the one connected with [[#isIdentifiedBy|isIdentifiedBy]] relation (gCube coordinates).
| + | |
− | |-
| + | |
− | | [[#Plugin|Plugin]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | Software coordinates which identify the Plugin per se.
| + | |
− | |}
| + | |
− | | + | |
− | ==== State Facet ====
| + | |
− | | + | |
− | The goal of this facet is to ...
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ <code>Abstract</code> State Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on state to be associated with the resource. State is captured by any controlled vocabulary which is an integral part of the facet.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | value
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code><br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | The value of the state expressed according to the schema below;
| + | |
− | |-
| + | |
− | | schema
| + | |
− | | URI
| + | |
− | | <code>Mandatory=true</code><br/> <code>NotNull=true</code>
| + | |
− | | colspan=2 | The schema that have been used to assign the state value and that must be used to properly interpret it;
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#State_Facet|State Facet]]
| + | |
− | | E.g. Deprecated, Active, Obsolete
| + | |
− | |}
| + | |
− | | + | |
− | ===== Container State Facet =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ Container State Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on the operational status of the container, i.e. the
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | value
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>Regex=(started<nowiki>|</nowiki>ready<nowiki>|</nowiki>certified<nowiki>|</nowiki>down<nowiki>|</nowiki>failed)</code>
| + | |
− | | colspan=2 | The value of the state
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..1
| + | |
− | | [[#Container_State_Facet|Container State Facet]]
| + | |
− | | An Hosting node can be started, ready, certified, down, failed.
| + | |
− | |}
| + | |
− | | + | |
− | ===== Service State Facet =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ Service State Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on the operational state of the service it is associated with.
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | value
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code> <br/><code>Regex=(STARTED<nowiki>|</nowiki>ready<nowiki>|</nowiki>down<nowiki>|</nowiki>failed)</code>
| + | |
− | | colspan=2 | The value of the state
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..1
| + | |
− | | [[#Service_State_Facet|Service State Facet]]
| + | |
− | | An EService can be STARTED, ready, down, failed.
| + | |
− | |}
| + | |
− | | + | |
− | ==== Subject Facet ====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ Subject Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Goal:''' This facet captures information on subjects associated with the resource for description, classification and discovery purposes;
| + | |
− | |-
| + | |
− | ! colspan=5 | Properties
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | value
| + | |
− | | String
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The value of the subject. Must be compliant with schema.
| + | |
− | |-
| + | |
− | | schema
| + | |
− | | URI
| + | |
− | | <code>Mandatory=true</code> <br/><code>NotNull=true</code>
| + | |
− | | colspan=2 | The URI of the schema subject value comes from. It is only an informative field. It is not used for validation from IS part.
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Subject_Facet|Subject Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Subject_Facet|Subject Facet]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | === Relations ===
| + | |
− | | + | |
− | ==== isRelatedTo ====
| + | |
− | | + | |
− | | + | |
− | ===== activates =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ activates <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#activates|activates]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Service|Service]]
| + | |
| | ... | | | ... |
| |} | | |} |
| | | |
− | ===== belongsTo ===== | + | ==== IsParentOf ==== |
| | | |
− | {|class="wikitable"
| + | This relation has no propagation constraint. |
− | |+ belongsTo <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Person|Person]]
| + | |
− | | [[#belongsTo|belongsTo]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Legal_Body|Legal Body]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ===== callsFor =====
| + | |
| | | |
| {|class="wikitable" | | {|class="wikitable" |
− | |+ callsFor <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| |
| |- | | |- |
| ! Source | | ! Source |
Line 1,778: |
Line 520: |
| ! Description | | ! Description |
| |- | | |- |
− | | [[#Service|Service]] | + | | [[#Context|Context]] |
− | | [[#callsFor|callsFor]] | + | | [[#IsParentOf|IsParentOf]] |
| | align=center | 0..n | | | align=center | 0..n |
− | | [[#Service|Service]] | + | | [[#Context|Context]] |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ====== discovers ======
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ discovers <code>''extends''</code> [[#callsFor|callsFor]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#discovers|discovers]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#EService|EService]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | | + | |
− | ====== uses ======
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ uses <code>''extends''</code> [[#callsFor|callsFor]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#uses|uses]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#EService|EService]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== demands =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ demands <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Virtual_Service|Virtual Service]]
| + | |
− | | [[#demands|demands]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software|Software]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== dependsOn =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ dependsOn <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#dependsOn|dependsOn]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software|Software]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ====== isPluginOf ======
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isPluginOf <code>''extends''</code> [[#dependsOn|dependsOn]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Plugin|Plugin]]
| + | |
− | | [[#isPluginOf|isPluginOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software|Software]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== enables =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ enables <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#enables|enables]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software|Software]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== hosts =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ hosts <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#hosts|hosts]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Service|Service]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== involves =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ involves <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#involves|involves]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Actor|Actor]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== isCompliantWith =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isCompliantWith <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#isCompliantWith|isCompliantWith]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Schema|Schema]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== isConfiguredBy =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isConfiguredBy <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#isConfiguredBy|isConfiguredBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== isCorrelatedTo =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isCorrelatedTo <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#isCorrelatedTo|isCorrelatedTo]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ====== isPartOf ======
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isPartOf <code>''extends''</code> [[#isCorrelatedTo|isCorrelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| + | |
− | | [[#isPartOf|isPartOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | | + | |
− | ===== isCustomizedBy =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isCustomizedBy <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#isCustomizedBy|isCustomizedBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#ConfigurationTemplate|Configuration Template]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== isDerivationOf =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isDerivationOf <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Configuration|Configuration]]
| + | |
− | | [[#isDerivationOf|isDerivationOf]]
| + | |
− | | align=center | 1..1
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== isOwnedBy =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isOwnedBy <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#isOwnedBy|isOwnedBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Actor|Actor]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | | + | |
− | ===== manages =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ manages <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#manages|manages]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ===== requires =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ requires <code>''extends''</code> [[#isRelatedTo|isRelatedTo]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#requires|requires]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Service|Service]]
| + | |
− | |
| + | |
− | |}
| + | |
− | | + | |
− | ==== consistsOf ====
| + | |
− | | + | |
− | ===== isIdentifiedBy =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ isIdentifiedBy <code>''extends''</code> [[#consistsOf|consistsOf]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#isIdentifiedBy_.28def.29|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Facet|Facet]]
| + | |
− | | A relation connecting each [[#Resource|Resource]] with one of the [[#Facet|Facet]] which can be used to identify the [[#Resource|Resource]].
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Facet|Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Actor|Actor]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | | [[#Legal_Body|Legal Body]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | | [[#Person|Person]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | | [[#Configuration|Configuration]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Facet|Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center|1..1
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
| | ... | | | ... |
− | |-
| |
− | | [[#Virtual_Service|Virtual Service]]
| |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| |
− | | align=center | 1..n
| |
− | | [[#Software_Facet|Software Facet]]
| |
− | | ...
| |
− | |-
| |
− | | [[#Virtual_Machine|Virtual Machine]]
| |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| |
− | | align=center | 1..n
| |
− | | [[#Software_Facet|Software Facet]]
| |
− | | ...
| |
− | |-
| |
− | | [[#Schema|Schema]]
| |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| |
− | | align=center | 1..n
| |
− | | [[#Identifier_Facet|Identifier Facet]]
| |
− | | ...
| |
− | |-
| |
− | | [[#Site|Site]]
| |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| |
− | | align=center | 1..n
| |
− | | [[#Identifier_Facet|Identifier Facet]]
| |
− | | ...
| |
− | |-
| |
− | | [[#Software|Software]]
| |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| |
− | | align=center|1..n
| |
− | | [[#Software_Facet|Software Facet]]
| |
− | | Software coordinates which identify the Software per se.
| |
− | |-
| |
− | | [[#Plugin|Plugin]]
| |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| |
− | | align=center|1..n
| |
− | | [[#Software_Facet|Software Facet]]
| |
− | | Software coordinates which identify the Plugin per se.
| |
| |} | | |} |
| | | |
− | ===== hasCapability ===== | + | === Best practices and guidelines === |
| | | |
− | {| class="wikitable"
| + | * On Facet instances "reuse" across Resource Profiles: |
− | |+ <code>Abstract</code> hasCapability <code>''extends''</code> [[#consistsOf|consistsOf]]
| + | ** This can be guaranteed automatically by the system, if and just in the case the system wants to avoid duplication of information. It is based on a configuration policy; |
− | |-
| + | ** This MUST be done only when a change in a facet instance MUST affect a change in all Resources connected to such a Facet. |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resource|Resource]]
| + | |
− | | [[#hasCapability|hasCapability]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Capability_Facet|Capability Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#hasCapability|hasCapability]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Capability_Facet|Capability Facet]]
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#hasCapability|hasCapability]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Capability_Facet|Capability Facet]]
| + | |
− | |
| + | |
− | |}
| + | |
| | | |
− | ===== hasContact =====
| |
| | | |
− | {| class="wikitable"
| + | === Maven coordinates === |
− | |+ <code>Abstract</code> hasContact <code>''extends''</code> [[#consistsOf|consistsOf]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#hasContact|hasContact]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasContact|hasContact]]
| + | |
− | | align=center|1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
| | | |
| + | To use the Java library containing the classes modelling the IS Model you can declare the following dependency: |
| | | |
− | ====== hasContributor ====== | + | <source lang="xml"> |
| + | <dependency> |
| + | <groupId>org.gcube.information-system</groupId> |
| + | <artifactId>information-system-model</artifactId> |
| + | <version>[5.0.0,6.0.0-SNAPSHOT)</version> |
| + | <dependency> |
| + | </source> |
| | | |
− | {| class="wikitable"
| + | == gCube Model == |
− | |+ hasContributor <code>''extends''</code> [[#hasContact|hasContact]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#hasContributor|hasContributor]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasContributor|hasContributor]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | Is he the contributor
| + | |
− | |}
| + | |
| | | |
− | ====== hasCreator ======
| + | An example of instantiation of the IS model is the [[gCube Model]]. |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ hasCreator <code>''extends''</code> [[#hasContact|hasContact]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#hasCreator|hasCreator]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasCreator|hasCreator]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | Is he the creator
| + | |
− | |}
| + | |
− | | + | |
− | ====== hasCurator ======
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ hasCurator <code>''extends''</code> [[#hasContact|hasContact]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#hasCurator|hasCurator]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasCurator|hasCurator]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | Is he the curator
| + | |
− | |}
| + | |
− | | + | |
− | ====== hasDeveloper ======
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ hasDeveloper <code>''extends''</code> [[#hasContact|hasContact]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#hasDeveloper|hasDeveloper]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | |}
| + | |
− | | + | |
− | ====== hasMaintainer ======
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ hasMaintainer <code>''extends''</code> [[#hasContact|hasContact]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#hasMaintainer|hasMaintainer]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasMaintainer|hasMaintainer]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | Is he the maintainer
| + | |
− | |}
| + | |
− | | + | |
− | ====== hasManager ======
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ hasManager <code>''extends''</code> [[#hasContact|hasContact]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#hasManager|hasManager]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | |}
| + | |
− | | + | |
− | ====== hasOwner ======
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ hasOwner <code>''extends''</code> [[#hasContact|hasContact]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resource]]
| + | |
− | | [[#hasOwner|hasOwner]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | |
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasOwner|hasOwner]]
| + | |
− | | align=center|0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | Is he the owner
| + | |
− | |}
| + | |
− | | + | |
− | ===== hasCoverage =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ <code>Abstract</code> hasCoverage <code>''extends''</code> [[#consistsOf|consistsOf]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resources]]
| + | |
− | | [[#hasCoverage|hasCoverage]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasCoverage|hasCoverage]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ====== hasSpatialCoverage ======
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ hasSpatialCoverage <code>''extends''</code> [[#hasCoverage|hasCoverage]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resources]]
| + | |
− | | [[#hasSpatialCoverage|hasSpatialCoverage]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasSpatialCoverage|hasSpatialCoverage]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ====== hasTemporalCoverage ======
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ hasTemporalCoverage <code>''extends''</code> [[#hasCoverage|hasCoverage]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resources]]
| + | |
− | | [[#hasTemporalCoverage|hasTemporalCoverage]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasTemporalCoverage|hasTemporalCoverage]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ===== hasMemory =====
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ <code>Abstract</code> hasMemory <code>''extends''</code> [[#consistsOf|consistsOf]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resources]]
| + | |
− | | [[#hasMemory|hasMemory]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Memory_Facet|Memory Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ====== hasPersistentMemory ======
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ hasPersistentMemory <code>''extends''</code> [[#hasMemory|hasMemory]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resources]]
| + | |
− | | [[#hasPersistentMemory|hasPersistentMemory]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Memory_Facet|Memory Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#hasPersistentMemory|hasPersistentMemory]]
| + | |
− | | align=center|1..n
| + | |
− | | [[#Memory_Facet|Memory Facet]]
| + | |
− | | Disk Space
| + | |
− | |}
| + | |
− | | + | |
− | ====== hasVolatileMemory ======
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ hasVolatileMemory <code>''extends''</code> [[#hasMemory|hasMemory]]
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Definition
| + | |
− | |-
| + | |
− | | [[#Resources|Resources]]
| + | |
− | | [[#hasVolatileMemory|hasVolatileMemory]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Memory_Facet|Memory Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#hasVolatileMemory|hasVolatileMemory]]
| + | |
− | | align=center|1..n
| + | |
− | | [[#Memory_Facet|Memory Facet]]
| + | |
− | | RAM
| + | |
− | |}
| + | |
− | | + | |
− | === Resources ===
| + | |
− | | + | |
− | Every Resource has:
| + | |
− | * An [[#Header|Header]]
| + | |
− | * One or more [[#Facets|Facets]] characterizing it;
| + | |
− | * Zero or More relation with other [[#Resources|Resources]]
| + | |
− | | + | |
− | A class can be identified as <code>Abstract</code>. This means that cannot be instantiated. It is expected that one of its specializations are instantiated.
| + | |
− | It is not required that an Abstract class establishes an [[#isIdentifiedBy|isIdentifiedBy]] relation with a [[#Facets|Facet]].
| + | |
− | | + | |
− | ==== Actor ====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ <code>Abstract</code> Actor <code>''extends''</code> [[#Resource|Resource]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' Any entity (human or machine) playing an active role.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Actor|Actor]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | An Actor has at least a Contact Facet which permit to identify the Actor per se.
| + | |
− | |-
| + | |
− | | [[#Actor|Actor]]
| + | |
− | | [[#hasContact|hasContact]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | An Actor can have other Contact Facets which provide secondary contact information.
| + | |
− | |-
| + | |
− | | [[#Actor|Actor]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Reference_Facet|Contact Reference Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#involves|involves]]
| + | |
− | | 0..n
| + | |
− | | [[#Actor|Actor]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#isOwnedBy|isOwnedBy]]
| + | |
− | | 0..n
| + | |
− | | [[#Actor|Actor]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ===== Legal Body =====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Legal Body <code>''extends''</code> [[#Actor|Actor]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' A legal entity playing the role of an Actor.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Legal_Body|Legal Body]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | A Legal Body has at least a Contact Facet which permit to identify the Legal Body per se.
| + | |
− | |-
| + | |
− | | [[#Legal_Body|Legal Body]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Reference_Facet|Contact Reference Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Person|Person]]
| + | |
− | | [[#belongsTo|belongsTo]]
| + | |
− | | 0..n
| + | |
− | | [[#Legal_Body|Legal Body]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ===== Person =====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Person <code>''extends''</code> [[#Actor|Actor]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' Any human playing the role of Actor.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Person|Person]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | A Person has at least a Contact Facet which permit to identify the Person per se.
| + | |
− | |-
| + | |
− | | [[#Person|Person]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Reference_Facet|Contact Reference Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Person|Person]]
| + | |
− | | [[#belongsTo|belongsTo]]
| + | |
− | | 0..n
| + | |
− | | [[#Legal_Body|Legal Body]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ==== Configuration Template ====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Configuration Template <code>''extends''</code> [[#Resource|Resource]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' It represents a template for a configuration. It describe how a configuration has to be realized. E.g. Used to define the accounting configuration parameters template.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Simple_Property_Facet|Simple Property Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Configuration|Configuration]]
| + | |
− | | [[#isDerivationOf|isDerivationOf]]
| + | |
− | | align=center | 1..1
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#isCustomizedBy|isCustomizedBy]]
| + | |
− | | 0..n
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#isConfiguredBy|isConfiguredBy]]
| + | |
− | | 0..n
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | | + | |
− | ===== Configuration =====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Configuration Profile <code>''extends''</code> [[#Configuration_Template|Configuration Template]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' An instance of a configuration template characterising the behaviour and shape of the resource it is attached to;
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Configuration|Configuration]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Configuration|Configuration]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Simple_Facet|Simple Facet]]
| + | |
− | | Used by IS-Exporter to export old GenericResource as [[#Configuration|Configuration]]
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Configuration|Configuration]]
| + | |
− | | [[#isDerivationOf|isDerivationOf]]
| + | |
− | | align=center | 1..1
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ==== Dataset ====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Dataset <code>''extends''</code> [[#Resource|Resource]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' Any set of digital objects representing data and treated collectively as a unit.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | The set of Identifiers associated with the Dataset instance.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasContact|hasContact]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | The contact information of the entity responsible for the dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasContributor|hasContributor]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | The contact information on contributors supporting the creation and development of the Dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasCreator|hasCreator]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | The contact information of the creator of the Dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasCurator|hasCurator]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | The contact information of the entity responsible for the curation of the dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasMaintainer|hasMaintainer]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | The contact information of the entity responsible for the maintenance of the dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasOwner|hasOwner]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | The contact information of the entity having the ownership of the dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Access_Point_Facet|Access Point Facet]]
| + | |
− | | The access point to use for having access to the dataset. The embargoState can be modeled through the access policy defined in the consistsOf relation.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#License_Facet|License Facet]]
| + | |
− | | The licence governing dataset exploitation. The duration of license (if any) is captured by the expiry date defined in the consistsOf relation.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Event_Facet|Event Facet]]
| + | |
− | | Any "event" characterising the lifecycle of the dataset, e.g. collection date, last collection date.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Provenance_Facet|Provenance Facet]]
| + | |
− | | Any provenance record associated with the dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasCoverage|hasCoverage]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | Any coverage related information (e.g. topic, species) characterising the content of the dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasTemporalCoverage|hasTemporalCoverage]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | Any temporal coverage information characterising the content of the dataset, e.g. the time-span covered by the dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#hasSpatialCoverage|hasSpatialCoverage]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Coverage_Facet|Coverage Facet]]
| + | |
− | | Any geo-spatial coverage information characterising the content of the dataset, e.g. the area covered by the dataset.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Descriptive_Metadata_Facet|Descriptive Metadata Facet]]
| + | |
− | | Any descriptive information associated with the dataset, e.g. for discovery purposes.
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Subject_Facet|Subject Facet]]
| + | |
− | | Any subject / tag associated with the dataset for descriptive and discovery purposes.
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#involves|involves]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Actor|Actor]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#isCorrelatedTo|isCorrelatedTo]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#isCompliantWith|isCompliantWith]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | Any schema characterising the content of the dataset, e.g. the schema describing the 'columns' of a CSV-based dataset.
| + | |
− | |-
| + | |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| + | |
− | | [[#isPartOf|isPartOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | The reference to the 'incarnations' / 'manifestations' contributing to a dataset.
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#manages|manages]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#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.
| + | |
− | |}
| + | |
− | | + | |
− | ===== Concrete Dataset =====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Concrete Dataset <code>''extends''</code> [[#Dataset|Dataset]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' Any incarnation / manifestation of a dataset or part of it;
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | The set of Identifiers associated with the Concrete Dataset instance.
| + | |
− | |-
| + | |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| + | |
− | | [[#hasMaintainer|hasMaintainer]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | The contact information of the entity responsible for the maintenance of the concrete dataset.
| + | |
− | |-
| + | |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Access_Point_Facet|Access Point Facet]]
| + | |
− | | The access point to use for having access to the concrete dataset. The embargoState can be modeled through the access policy defined in the consistsOf relation.
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Concrete_Dataset|Concrete Dataset]]
| + | |
− | | [[#isPartOf|isPartOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | The reference to the Dataset the instance manifests / contribute to manifest.
| + | |
− | |}
| + | |
− | | + | |
− | ==== Schema ====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Schema <code>''extends''</code> [[#Resource|Resource]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' Any reference schema to be used to specify values compliant with it. Examples include controlled vocabularies, ontologies, etc.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Schema_Facet|Schema Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#JSON_Schema_Facet|JSON Schema Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#XSD_Schema_Facet|XSD Schema Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#hasContact|hasContact]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Descriptive_Metadata_Facet|Descriptive Metadata Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Subject_Facet|Subject Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | [[#isCompliantWith|isCompliantWith]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Schema|Schema]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ==== Service ====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ <code>Abstract</code> Service Profile
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' An abstract entity to represent any typology of Service worth registering in the infrastructure.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Facet|Facet]]
| + | |
− | | Any facet instance useful for identification purposes.
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Descriptive_Metadata_Facet|Descriptive Metadata Facet]]
| + | |
− | | Any descriptive information associated with the service, e.g. for discovery purposes.
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Subject_Facet|Subject Facet]]
| + | |
− | | Any subject / tag associated with the service for descriptive, cataloguing and discovery purposes.
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#hasCapability|hasCapability]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Capability_Facet|Capability Facet]]
| + | |
− | | Any facility supported/offered by the Service.
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#callsFor|callsFor]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Service|Service]]
| + | |
− | | A reference to the Services needed by the target instance to work.
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#activates|activates]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Service|Service]]
| + | |
− | | The source [[#Service|Service]] enables the target [[#Service|Service]] to be running. Examples are an [[#HostingNode|Hosting Node]] which enables an [[#EService|EService]]; A [[#VirtualMachine|Virtual Machine]] enabling an [[#EService|EService]] or an [[#HostingNode|Hosting Node]]; An [[#EService|EService]] enabling a [[#RunningPlugin|Running Plugin]] etc.
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#isCustomizedBy|isCustomizedBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | A reference to any configuration characterising the Service behaviour.
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#manages|manages]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Dataset|Dataset]]
| + | |
− | | A reference to any Dataset resource managed by the Service instance.
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#enables|enables]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software|Software]]
| + | |
− | | A reference to any Software the Service is enabling (i.e. the Software is running throught the EService)
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#requires|requires]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#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.
| + | |
− | |}
| + | |
− | | + | |
− | ===== EService =====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ EService <code>''extends''</code> [[#Service|Service]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' Any working service that is registered in the infrastructure and made available by an [[#Access_Point_Facet|Access Point]].
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | The main software enabling the EService capabilities.
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | Software available in the EService environment that characterizes the specific EService instance.
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Access_Point_Facet|Access Point Facet]]
| + | |
− | | Identify the endpoints of the EService.
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Event_Facet|Event Facet]]
| + | |
− | | Events characterising the current status and lifecycle of the service, e.g. ActivationTime, DeploymentTime.
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center|1..1
| + | |
− | | [[#Service_State_Facet|Service State Facet]]
| + | |
− | | The current status of the EService, e.g. STARTED, ready, down, failed.
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#License_Facet|License Facet]]
| + | |
− | | The specific terms of use governing the exploitation of the EService.
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#discovers|discovers]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#EService|EService]]
| + | |
− | | A reference to any other EService, the EService instance is discovering through query on IS.
| + | |
− | |-
| + | |
− | | [[#EService|EService]]
| + | |
− | | [[#uses|uses]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#EService|EService]]
| + | |
− | | A reference to any other EService, the EService instance is invoking.
| + | |
− | |}
| + | |
− | | + | |
− | | + | |
− | ====== Running Plugin ======
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Running Plugin <code>''extends''</code> [[#EService|EService]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' Any instance of a Plugin deployed and running by an EService.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Running_Plugin|Running Plugin]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center|1..1
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | The software enabling the Running Plugin.
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | |}
| + | |
− | | + | |
− | ===== Hosting Node =====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Hosting Node <code>''extends''</code> [[#Service|Service]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' Any server\machine playing the role of "Hosting Node", i.e., being capable to host and operate an EService;
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Networking_Facet|Networking Facet]]
| + | |
− | | The Network ID characterising the Hosting Node.
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#CPU_Facet|CPU Facet]]
| + | |
− | | The CPU equipping the Hosting Node.
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#hasPersistentMemory|hasPersistentMemory]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Memory_Facet|Memory Facet]]
| + | |
− | | The Disk Space Capacity of the Hosting Node.
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#hasVolatileMemory|hasVolatileMemory]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Memory_Facet|Memory Facet]]
| + | |
− | | The RAM Capacity of the Hosting Node.
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Event_Facet|Event Facet]]
| + | |
− | | Every event characterizing the life cycle of the Hosting Node, e.g. the activation time.
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center|1..1
| + | |
− | | [[#Container_State_Facet|Container State Facet]]
| + | |
− | | The current state of the Hosting Node, e.g. started, ready, certified, down, failed.
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Simple_Property_Facet|Simple Property Facet]]
| + | |
− | | Any <key, value> pair property worth associating with the Hosting Node, e.g. Environment Variables.
| + | |
− | |-
| + | |
− | | [[#Hosting_Node|Hosting Node]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | Any Software characterising the Hosting Node. Useful to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System.
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | |}
| + | |
− | | + | |
− | ===== Virtual Machine =====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Virtual Machine Profile <code>''extends''</code> [[#Service|Service]] Profile
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' ................
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Virtual_Machine|Virtual Machine]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | ???
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | |}
| + | |
− | | + | |
− | ===== Virtual Service =====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Virtual Service Profile <code>''extends''</code> [[#Service|Service]] Profile
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' An abstract service (non physically existing service) worth being represented as an existing Service for management purposes. Examples of usage include cases where classes or set of services are to be managed like an existing unit.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Virtual_Service|Virtual Service]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | ???
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Virtual_Service|Virtual Service]]
| + | |
− | | [[#demands|demands]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software|Software]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ==== Site ====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Site Profile <code>''extends''</code> [[#Resource|Resource]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' An entity representing the location (physical or virtual) hosting and providing the resources associated with it.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Identifier_Facet|Identifier Facet]]
| + | |
− | | The Site Identifier.
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#hasContact|hasContact]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | The main contact for the Site.
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#hasMaintainer|hasMaintainer]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | Contact information of the maintainer of the Site.
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#hasManager|hasManager]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Contact_Facet|Contact Facet]]
| + | |
− | | Contact information of the Site Manager.
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Location_Facet|Location Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Networking_Facet|Networking Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#isOwnedBy|isOwnedBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Actor|Actor]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Site|Site]]
| + | |
− | | [[#hosts|hosts]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Service|Service]]
| + | |
− | | ...
| + | |
− | |}
| + | |
− | | + | |
− | ==== Software ====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Software <code>''extends''</code> [[#Resource|Resource]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' Any Software entity worth being represented for management purposes.
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | Software coordinates which identify the Software per se.
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | Apart the one connected by the [[#isIdentifiedBy|isIdentifiedBy]] relation (gCube coordinates) the others identify the sw in other way e.g. (Maven coordinates).
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Access_Point_Facet|Access Point Facet]]
| + | |
− | | Links to maven artifact on nexus, javadoc, wiki, svn ...
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#License_Facet|License Facet]]
| + | |
− | | The Software License characterizing its possible exploitation and use.
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#State_Facet|State Facet]]
| + | |
− | | The state characterising the software, e.g. Deprecated, Active, Obsolete.
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#hasCapability|hasCapability]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Capability_Facet|Capability Facet]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#dependsOn|dependsOn]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software|Software]]
| + | |
− | | To capture any dependency between two software artifacts.
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#isConfiguredBy|isConfiguredBy]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Configuration_Template|Configuration Template]]
| + | |
− | | E.g. Accounting Sw uses it to discover the configuration.
| + | |
− | |-
| + | |
− | | [[#Software|Software]]
| + | |
− | | [[#requires|requires]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Service|Service]]
| + | |
− | | to capture any dependency between a software artifact and a Service, e.g. A software requiring a specific database.
| + | |
− | |-
| + | |
− | | [[#Virtual_Service|Virtual Service]]
| + | |
− | | [[#demands|demands]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software|Software]]
| + | |
− | | ...
| + | |
− | |-
| + | |
− | | [[#Plugin|Plugin]]
| + | |
− | | [[#isPluginOf|isPluginOf]]
| + | |
− | | align=center | 0..n
| + | |
− | | [[#Software|Software]]
| + | |
− | | To capture the relation between a Software and its Plugins.
| + | |
− | |}
| + | |
− | | + | |
− | ===== Plugin =====
| + | |
− | | + | |
− | {| class="wikitable"
| + | |
− | |+ Plugin <code>''extends''</code> [[#Software|Software]]
| + | |
− | |-
| + | |
− | | colspan=5 | '''Scope:''' A piece of Software extending the capabilities of another Software (main) and requiring the main Software to be executed;
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | ! colspan=5 | Facets
| + | |
− | |-
| + | |
− | | [[#Plugin|Plugin]]
| + | |
− | | [[#isIdentifiedBy|isIdentifiedBy]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software_Facet|Software Facet]]
| + | |
− | | Software coordinates which identify the Plugin per se.
| + | |
− | |-
| + | |
− | ! colspan=5 | Relations
| + | |
− | |-
| + | |
− | | [[#Plugin|Plugin]]
| + | |
− | | [[#isPluginOf|isPluginOf]]
| + | |
− | | align=center | 1..n
| + | |
− | | [[#Software|Software]]
| + | |
− | | A reference to the [[#Software|Software]] this [[#Plugin|Plugin]] is conceived to extend the capabilities.
| + | |
− | |}
| + | |
− | | + | |
− | == Suggested Extensions ==
| + | |
− | The gCube Resource Model supports extensions at runtime meaning that new facets, relations, and resources can be defined and registered at any time by authorized clients. Those extensions must necessarily specialize an existing gCube Entity.
| + | |
− | An example of those specializations is the following:
| + | |
− | | + | |
− | === Functionality Related Facet ===
| + | |
− | | + | |
− | The goal of this facet is to capture what are the facilities supported by the Service Entity and it aims to model the service interface.
| + | |
− | | + | |
− | {|class="wikitable"
| + | |
− | |+ Functionality Related Facet <code>''extends''</code> [[#Facet|Facet]]
| + | |
− | |-
| + | |
− | ! Name
| + | |
− | ! Type
| + | |
− | ! Attributes
| + | |
− | ! colspan=2 | Description
| + | |
− | |-
| + | |
− | | name
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | ...
| + | |
− | |-
| + | |
− | | description
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | ...
| + | |
− | |-
| + | |
− | | input
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | ...
| + | |
− | |-
| + | |
− | | output
| + | |
− | | String
| + | |
− | |
| + | |
− | | colspan=2 | ...
| + | |
− | |-
| + | |
− | ! colspan=5 | Known Usage
| + | |
− | |-
| + | |
− | ! Source
| + | |
− | ! Relation
| + | |
− | ! Multiplicity
| + | |
− | ! Target
| + | |
− | ! Description
| + | |
− | |-
| + | |
− | | [[#Service|Service]]
| + | |
− | | [[#consistsOf|consistsOf]]
| + | |
− | | 0..n
| + | |
− | | [[#Functionality_Related_Facet|Functionality Related Facet]]
| + | |
− | | ...
| + | |
− | |}
| + | |
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:
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)”[1].
The Free Dictionary defines a facet as “One of numerous aspects, as of a subject” [2].
The following are obtained using a String as real type and adding a validation regex.
Any property defined by composing basic types, complex types and other complex types. Any complex type can be defined by extending Property type.
It does not define any field. It is just used as a base class.
Every Entity and Relation has an Header automatically created/updated by the System.
At any time entities and relations can be added or removed to/from a context or deleted.
The PropagationConstraint property contained in each relation is a predefined Property type which indicates the behaviour to be held on a target entity when an event related to a context occurs in the source resource or directly to the relation.
Facets are collections of attributes conceived to capture a certain feature/aspect of the Resource they are associated with.
Every facet can define zero or more properties. Besides the per-facet envisaged properties, clients can add new ones.
Model a Context (aka scope) in the same Application Domain.
This relation has no propagation constraint.
To use the Java library containing the classes modelling the IS Model you can declare the following dependency:
.