Difference between revisions of "Facet Based Resource Model"

From Gcube Wiki
Jump to: navigation, search
(Access Point Facet)
(Facets)
Line 196: Line 196:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+  Facet
 +
|-
 
|+ Access Point Facet
 
|+ Access Point Facet
 
|-
 
|-
Line 202: Line 204:
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| entryName
 
| entryName
Line 207: Line 210:
 
| An unique identifier
 
| An unique identifier
 
|  
 
|  
 +
|
 
|-
 
|-
 
| endpoint
 
| endpoint
Line 212: Line 216:
 
| The URI which identify the endpoint of a resource
 
| The URI which identify the endpoint of a resource
 
| <code>Mandatory=true</code> <code>ReadOnly=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>ReadOnly=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| protocol
 
| protocol
Line 217: Line 222:
 
| The high-level protocol used by the access point. The String could contains the version if needed.  
 
| 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.
 
E.g. WMS not http which is already contained in URI.
 +
|
 
|
 
|
 
|-
 
|-
Line 223: Line 229:
 
| .....
 
| .....
 
|  
 
|  
 +
|
 
|-
 
|-
 
| authorization
 
| authorization
 
| String
 
| String
 
| Contains authorization information. E.g: a token, username:password. By relying on schema it should be sufficient to capture also whether the content is encrypted or not  
 
| Contains authorization information. E.g: a token, username:password. By relying on schema it should be sufficient to capture also whether the content is encrypted or not  
 +
|
 
|
 
|
 
|-
 
|-
Line 232: Line 240:
 
| URI
 
| URI
 
| ....
 
| ....
 +
|
 
|
 
|
 
|-
 
|-
Line 237: Line 246:
 
| String  
 
| String  
 
| This can be an arbitrarily complex element whose "structure" is defined by the associated schema
 
| This can be an arbitrarily complex element whose "structure" is defined by the associated schema
 +
|
 
|
 
|
 
|-
 
|-
Line 243: Line 253:
 
| ....
 
| ....
 
|
 
|
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 250: Line 269:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Contact Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| title
 
| title
Line 259: Line 281:
 
| e.g. Dr, Mrs, Mr, ...
 
| e.g. Dr, Mrs, Mr, ...
 
| <code>Mandatory=false</code>  
 
| <code>Mandatory=false</code>  
 +
|
 
|-
 
|-
 
| name
 
| name
Line 264: Line 287:
 
| First Name
 
| First Name
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| middleName
 
| middleName
Line 269: Line 293:
 
| Middle Name
 
| Middle Name
 
| <code>Mandatory=false</code>  
 
| <code>Mandatory=false</code>  
 +
|
 
|-
 
|-
 
| surname
 
| surname
Line 274: Line 299:
 
| Surname
 
| Surname
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| eMail
 
| eMail
Line 279: Line 305:
 
| An RFC‑822 compliant email address.  
 
| An RFC‑822 compliant email address.  
 
| <code>Mandatory=true</code> <code>NotNull=true</code> <code>Regex see http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code> <code>Regex see http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html</code>
 +
|
 
|-
 
|-
 
| website
 
| website
Line 284: Line 311:
 
| The main website
 
| The main website
 
|  
 
|  
 +
|
 
|-
 
|-
 
| address
 
| address
Line 289: Line 317:
 
| A physical address
 
| A physical address
 
|  
 
|  
 +
|
 
|-
 
|-
 
| phone
 
| phone
Line 294: Line 323:
 
| A phone number
 
| A phone number
 
|
 
|
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 301: Line 339:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Coverage Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| value
 
| value
Line 310: Line 351:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>  
 
| <code>Mandatory=true</code> <code>NotNull=true</code>  
 +
|
 
|-
 
|-
 
| schema
 
| schema
Line 315: Line 357:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>  
 
| <code>Mandatory=true</code> <code>NotNull=true</code>  
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 322: Line 373:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ CPU Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| model
 
| model
Line 331: Line 385:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| vendor
 
| vendor
Line 336: Line 391:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| clockSpeed
 
| clockSpeed
Line 341: Line 397:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 348: Line 413:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Descriptive Metadata Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| value
 
| value
Line 357: Line 425:
 
| Inherited. E.g. XML Blob
 
| Inherited. E.g. XML Blob
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| schema
 
| schema
Line 362: Line 431:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 369: Line 447:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Event Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| value
 
| value
Line 378: Line 459:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| schema
 
| schema
Line 383: Line 465:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 391: Line 482:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Functionality Related Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| name
 
| name
 
| String
 
| String
 
| ...
 
| ...
 +
|
 
|
 
|
 
|-
 
|-
Line 404: Line 499:
 
| String
 
| String
 
| ...
 
| ...
 +
|
 
|
 
|
 
|-
 
|-
Line 409: Line 505:
 
| String
 
| String
 
| ...
 
| ...
 +
|
 
|
 
|
 
|-
 
|-
Line 415: Line 512:
 
| ...
 
| ...
 
|
 
|
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 422: Line 528:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Identifier Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| value
 
| value
Line 431: Line 540:
 
| The identifier. E.g. http://fr.dbpedia.org/resource/Thunnus de305d54-75b4-431b-adb2-eb6b9e546014
 
| The identifier. E.g. http://fr.dbpedia.org/resource/Thunnus de305d54-75b4-431b-adb2-eb6b9e546014
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| type
 
| type
Line 436: Line 546:
 
| The typology of identifier. I.e. URI, DOI, IRI, URL, URN, UUID;
 
| The typology of identifier. I.e. URI, DOI, IRI, URL, URN, UUID;
 
| <code>Mandatory=true</code> <code>NotNull=true</code>  
 
| <code>Mandatory=true</code> <code>NotNull=true</code>  
 +
|
 
|-
 
|-
 
| isPersistent
 
| isPersistent
Line 441: Line 552:
 
| To indicate if the Identifier is persistent or not.  
 
| To indicate if the Identifier is persistent or not.  
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 446: Line 566:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ License Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| name
 
| name
Line 455: Line 578:
 
| E.g. EUPL 1.1, GPLv2, BSD, ...
 
| E.g. EUPL 1.1, GPLv2, BSD, ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| text
 
| text
Line 460: Line 584:
 
| Licence URL
 
| Licence URL
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 467: Line 600:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Location Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| Country
 
| Country
Line 476: Line 612:
 
| ...
 
| ...
 
|  
 
|  
 +
|
 
|-
 
|-
 
| Location
 
| Location
Line 481: Line 618:
 
| ...
 
| ...
 
|  
 
|  
 +
|
 
|-
 
|-
 
| Latitude
 
| Latitude
Line 486: Line 624:
 
| ...
 
| ...
 
|  
 
|  
 +
|
 
|-
 
|-
 
| Longitude
 
| Longitude
Line 491: Line 630:
 
| ...
 
| ...
 
|  
 
|  
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 498: Line 646:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Memory Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| size
 
| size
Line 507: Line 658:
 
| Total amount of memory.
 
| Total amount of memory.
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| used
 
| used
Line 512: Line 664:
 
| usesd amount of memory.
 
| usesd amount of memory.
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| unit
 
| unit
Line 517: Line 670:
 
| I.e. 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)
 
| I.e. 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)
 
| <code>Mandatory=true</code> <code>NotNull=true</code> <code>Regex=(Byte<nowiki>|</nowiki>kB,<nowiki>|</nowiki>MB<nowiki>|</nowiki>GB<nowiki>|</nowiki>TB<nowiki>|</nowiki>PB<nowiki>|</nowiki>EB<nowiki>|</nowiki>ZB<nowiki>|</nowiki>YB)
 
| <code>Mandatory=true</code> <code>NotNull=true</code> <code>Regex=(Byte<nowiki>|</nowiki>kB,<nowiki>|</nowiki>MB<nowiki>|</nowiki>GB<nowiki>|</nowiki>TB<nowiki>|</nowiki>PB<nowiki>|</nowiki>EB<nowiki>|</nowiki>ZB<nowiki>|</nowiki>YB)
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 524: Line 686:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Network Address Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| hostName
 
| hostName
 
| String
 
| String
 
| ...
 
| ...
 +
|
 
|
 
|
 
|-
 
|-
Line 537: Line 703:
 
| String
 
| String
 
| ...
 
| ...
 +
|
 
|
 
|
 
|-
 
|-
Line 543: Line 710:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| mask
 
| mask
 
| String
 
| String
 
| ...
 
| ...
 +
|
 
|
 
|
 
|-
 
|-
Line 553: Line 722:
 
| ...
 
| ...
 
|
 
|
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 569: Line 747:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Peripheral Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| model
 
| model
 
| String
 
| String
 
| ...
 
| ...
 +
|
 
|
 
|
 
|-
 
|-
Line 583: Line 765:
 
| ...
 
| ...
 
|
 
|
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 590: Line 781:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Provenance Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| relationship
 
| relationship
 
| Enum
 
| Enum
 
| .... E.g. wasDerivedFrom | wasGeneratedBy | ...  
 
| .... E.g. wasDerivedFrom | wasGeneratedBy | ...  
 +
|
 
|
 
|
 
|-
 
|-
Line 603: Line 798:
 
| String
 
| String
 
| resourceID (a reference to the "originator" Resource associated to the resource the facet is attached to by the relationship)
 
| resourceID (a reference to the "originator" Resource associated to the resource the facet is attached to by the relationship)
 +
|
 
|
 
|
 
|-
 
|-
Line 608: Line 804:
 
| String
 
| String
 
| ... E.g. the xml format
 
| ... E.g. the xml format
 +
|
 
|
 
|
 
|-
 
|-
Line 614: Line 811:
 
| ... E.g. a reference to the format
 
| ... E.g. a reference to the format
 
|
 
|
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 621: Line 827:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Schema Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| name
 
| name
Line 630: Line 839:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| description
 
| description
Line 635: Line 845:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| schemaURL
 
| schemaURL
Line 640: Line 851:
 
| ...
 
| ...
 
|  
 
|  
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 645: Line 865:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ JSON Schema Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| content
 
| content
Line 654: Line 877:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 659: Line 891:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ XSD Schema Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| content
 
| content
Line 668: Line 903:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 675: Line 919:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Simple Property Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| name
 
| name
Line 684: Line 931:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| value
 
| value
Line 689: Line 937:
 
| ...
 
| ...
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 696: Line 953:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Software Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| name
 
| name
 
| String
 
| String
 
| 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.
 
| 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.
 +
|
 
|
 
|
 
|-
 
|-
Line 709: Line 970:
 
| String
 
| String
 
| 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.
 
| 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.
 +
|
 
|
 
|
 
|-
 
|-
Line 714: Line 976:
 
| String
 
| String
 
| 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'''.
 
| 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'''.
 +
|
 
|
 
|
 
|-
 
|-
Line 719: Line 982:
 
| String
 
| String
 
| A human oriented description of the software artefact being described.
 
| A human oriented description of the software artefact being described.
 +
|
 
|
 
|
 
|-
 
|-
Line 724: Line 988:
 
| String
 
| String
 
| E.g. packaging or scope in maven, scope level or sharable level in gCube software, target architecture for retail software x86 or amd64.
 
| E.g. packaging or scope in maven, scope level or sharable level in gCube software, target architecture for retail software x86 or amd64.
 +
|
 
|
 
|
 
|-
 
|-
Line 730: Line 995:
 
| .... usesd in maven and in gcube
 
| .... usesd in maven and in gcube
 
|
 
|
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 737: Line 1,011:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ State Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| value
 
| value
Line 746: Line 1,023:
 
| The value of the state. Must be compliant with schema.
 
| The value of the state. Must be compliant with schema.
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 751: Line 1,037:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Container State Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| value
 
| value
Line 760: Line 1,049:
 
| The value of the state
 
| The value of the state
 
| <code>Mandatory=true</code> <code>NotNull=true</code> <code>Regex=(started<nowiki>|</nowiki>ready<nowiki>|</nowiki>certified<nowiki>|</nowiki>down<nowiki>|</nowiki>failed)</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code> <code>Regex=(started<nowiki>|</nowiki>ready<nowiki>|</nowiki>certified<nowiki>|</nowiki>down<nowiki>|</nowiki>failed)</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 765: Line 1,063:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Service State Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| value
 
| value
Line 774: Line 1,075:
 
| The value of the state
 
| The value of the state
 
| <code>Mandatory=true</code> <code>NotNull=true</code> <code>Regex=(STARTED<nowiki>|</nowiki>ready<nowiki>|</nowiki>down<nowiki>|</nowiki>failed)</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code> <code>Regex=(STARTED<nowiki>|</nowiki>ready<nowiki>|</nowiki>down<nowiki>|</nowiki>failed)</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  
Line 781: Line 1,091:
  
 
{|class="wikitable"
 
{|class="wikitable"
 +
|+ Subject Facet
 +
|-
 
! Name
 
! Name
 
! Type
 
! Type
 
! Description
 
! Description
 
! Attributes
 
! Attributes
 +
!
 
|-
 
|-
 
| value
 
| value
Line 790: Line 1,103:
 
| The value of the state. Must be compliant with schema.
 
| The value of the state. Must be compliant with schema.
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|
 
|-
 
|-
 
| schema
 
| schema
Line 795: Line 1,109:
 
| The URI of the schema. It is only an informative field. It is not used for validation from IS part.
 
| The URI of the schema. It is only an informative field. It is not used for validation from IS part.
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 
| <code>Mandatory=true</code> <code>NotNull=true</code>
 +
|-
 +
! colspan=5 | Known Usage
 +
|-
 +
! Source
 +
! Relation
 +
! Multiplicity
 +
! Target
 +
! Description
 +
|-
 
|}
 
|}
  

Revision as of 14:46, 25 July 2016

Contents

Basic Concepts

  • Two typologies of entities are envisaged:
    • Resources, i.e. entities representing a description of "thing" to be managed;
      • Every Resource is characterised by a number of Facets.
    • Facets, i.e. entities contributing to "build" a description of a Resource. Every facet, once attached to a Resource profile captures a certain aspect / characterization of the resource;
      • Every facet is characterised by a number of properties;
  • Entities and relations can be specialized.
    • A number of specializations are identified below. Such specializations are managed by the gCube Core services, i.e. Core services builds upon these specialization 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.
  • On relations:
    • Any relation has a direction, i.e. a "source" (out bound of the relation) and a "target" (in bound of the relation). Anyway the relation can be also navigated in the opposite direction;
    • It is not permitted to define a Relation having a Facet as "source". In other words:
      • It is not permitted to define a Relation connecting a Facet with another one;
      • It is not permitted to define a Relation connecting a Facet with a Resource (as target);
    • A Facet instance can be linked (by consistsOf or any specialization of it) from different Resources.

Is-model.png

Property

Any Property can be enriched with the following attributes:

  • Name : Property Name
  • Type : The Type of the Property (e.g. String, Integer, ...). See Property Type
  • Description : The description of the Property. default=null.
  • Mandatory (M): Indicate if the Property is mandatory. default=false.
  • ReadOnly (RO): The Property cannot change its value. default=false.
  • NotNull (NN): default=false
  • Max (Max): default=null
  • Min (Min): default=null
  • Regexpr (Reg)): A Regular Expression to validate the property value.default=null

Property Type

Basic Property Type
Type Description Java type
Boolean Handles only the values True or False java.lang.Boolean or boolean
Integer 32-bit signed Integers java.lang.Integer or int
Short Small 16-bit signed integers java.lang.Short or short
Long Big 64-bit signed integers java.lang.Long or long
Float Decimal numbers java.lang.Float or float
Double Decimal numbers with high precision java.lang.Double or double
Datetime Any date with the precision up to milliseconds. java.util.Date
String Any string as alphanumeric sequence of chars java.lang.String
Embedded This is an Object contained inside the owner Entity and has no Header. It is reachable only by navigating the owner Entity. org.gcube.informationsystem.model.embedded.Embedded
Embedded list List of Objects contained inside the owner Entity and have no Header. They are reachable only by navigating the owner Entity. List<? extends Embedded>
Embedded set Set (no duplicates) of Objects contained inside the owner Entity and have no Header. They are reachable only by navigating the owner Entity. Set<? extends Embedded>
Embedded map Map of Objects contained inside the owner Entity and have no Header. They are reachable only by navigating the owner Entity. Map<String, ? extends Embedded>
Link ... Link to another Entity. ...
Byte Single byte. usesful to store small 8-bit signed integers java.lang.Byte or byte
Binary Can contain any value as byte array java.lang.Byte[] or byte[]
Any Not determinated type, used to specify Collections of mixed type, and null java.lang.Object
Derived Property Type

The following are obtained using a String as real type and adding a validation regex.

Type Description Java type
Enum by default it is represented using the String representation of the Enum. So that the primitive type used will be String. The enumeration is checked by setting Regexpr property. The Regular Expression is auto-generated and it will be something like (FIRST-ENUM-STRING_REPRESENTATION|SECOND-ENUM-STRING_REPRESENTATION|...|LAST_ENUM_STRING_REPRESENTATION).

Otherwise (if indicated using an annotation), it can be represented using the Integer value of the Enum. So that the primitive type used will be Integer. The enumeration is checked using Max and Min properties.

java.lang.Enum or enum
UUID String representation of the UUID. The check is obtained using the regular expression ([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}){1} java.util.UUID
URL String representation of the URL. The check is obtained using a regex available at https://mathiasbynens.be/demo/url-regex (see diegoperini one). java.net.URL
URI String representation of the URI. The check is obtained using . java.net.URI

Header

Every Entity and Relation has an Header automatically filled by the System. The Header has the following properties:

Name Type Description Attributes
uuid UUID This uuid can be used to univocally identify the Entity or the Relation Mandatory=true NotNull=true ReadOnly=true
creator String Filled at creation time. The creator is retrieved using the authorization token Mandatory=true NotNull=true ReadOnly=true
creationTime Datetime Creation time in milliseconds. Represent the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970 UTC Mandatory=true NotNull=true ReadOnly=true
lastUpdateTime Datetime Last Update time in milliseconds. Represent the difference, measured in milliseconds, between the last update time and midnight, January 1, 1970 UTC Mandatory=true NotNull=true


Resources and (isRelatedTo) Relations

Gcube-reources-and-isrelatedto-relations.png

Facets

Early ideas and thinking on facets were documented at 2nd Generation Resource Model : Facets

Facet

Every Facet has:

Access Point Facet

The goal of this facet is expected to capture information on “access points” for a resource, i.e. any endpoint to interact with the resource via a known protocol.

Facet Access Point Facet
Name Type Description Attributes
entryName String An unique identifier
endpoint URI The URI which identify the endpoint of a resource Mandatory=true ReadOnly=true NotNull=true
protocol String 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 .....
authorization String Contains authorization information. E.g: a token, username:password. By relying on schema it should be sufficient to capture also whether the content is encrypted or not
authorizationSchema URI ....
properties String This can be an arbitrarily complex element whose "structure" is defined by the associated schema
propertiesSchema URI ....
Known Usage
Source Relation Multiplicity Target Description

Contact Facet

The goal of this facet is expected to capture contact information.

Contact Facet
Name Type Description Attributes
title String e.g. Dr, Mrs, Mr, ... Mandatory=false
name String First Name Mandatory=true NotNull=true
middleName String Middle Name Mandatory=false
surname String Surname Mandatory=true NotNull=true
eMail Email An RFC‑822 compliant email address. Mandatory=true NotNull=true Regex see http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
website URL The main website
address String A physical address
phone String A phone number
Known Usage
Source Relation Multiplicity Target Description

Coverage Facet

The goal of this facet is to collect any extent-related information.

Coverage Facet
Name Type Description Attributes
value String ... Mandatory=true NotNull=true
schema URI ... Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description

CPU Facet

The goal of this facet is to describe CPU information.

CPU Facet
Name Type Description Attributes
model String ... Mandatory=true NotNull=true
vendor String ... Mandatory=true NotNull=true
clockSpeed String ... Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description

Descriptive Metadata Facet

The goal of this facet is to collect any descriptive metadata about the resource.

Descriptive Metadata Facet
Name Type Description Attributes
value String Inherited. E.g. XML Blob Mandatory=true NotNull=true
schema URI ... Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description

Event Facet

The goal of this facet is to collect any descriptive metadata about the resource.

Event Facet
Name Type Description Attributes
value String ... Mandatory=true NotNull=true
schema URI ... Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description

Functionality Related Facet

The goal of this facet is to capture what are the facilities supported (Challenging because of the different audiences) Something very "poor" ... we can have a look at WPS spec

Functionality Related Facet
Name Type Description Attributes
name String ...
description String ...
input String ...
output String ...
Known Usage
Source Relation Multiplicity Target Description

Identifier Facet

The goal of this facet is to collect information on Identifiers that can be attached to a resource.

Identifier Facet
Name Type Description Attributes
value String The identifier. E.g. http://fr.dbpedia.org/resource/Thunnus de305d54-75b4-431b-adb2-eb6b9e546014 Mandatory=true NotNull=true
type Enumeration The typology of identifier. I.e. URI, DOI, IRI, URL, URN, UUID; Mandatory=true NotNull=true
isPersistent boolean To indicate if the Identifier is persistent or not. Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description

License Facet

License Facet
Name Type Description Attributes
name String E.g. EUPL 1.1, GPLv2, BSD, ... Mandatory=true NotNull=true
text URL Licence URL Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description

Location Facet

The goal of this facet is to collect information about Location

Location Facet
Name Type Description Attributes
Country String ...
Location String ...
Latitude String ...
Longitude String ...
Known Usage
Source Relation Multiplicity Target Description

Memory Facet

The goal of this facet is to .....

Memory Facet
Name Type Description Attributes
size Long Total amount of memory. Mandatory=true NotNull=true
used Long usesd amount of memory. Mandatory=true NotNull=true
unit Enum I.e. 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) Mandatory=true NotNull=true Regex=(Byte|kB,|MB|GB|TB|PB|EB|ZB|YB)
Known Usage
Source Relation Multiplicity Target Description

Network Address Facet

The goal of this facet is to capture IP information

Network Address Facet
Name Type Description Attributes
hostName String ...
domainName String ...
IPAddress String ... <code>Mandatory=true NotNull=true
mask String ...
broadcastAddress String ...
Known Usage
Source Relation Multiplicity Target Description

Regular expression to validate different IPv4 addresses are available at:

http://www.regextester.com/22

https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html

Both IPv4 and IPv6: http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses

Peripheral Facet

The goal of this facet is to .....

Peripheral Facet
Name Type Description Attributes
model String ...
vendor String ...
Known Usage
Source Relation Multiplicity Target Description

Provenance Facet

The goal of this facet is to collect information related with resource lineage/provenance

Provenance Facet
Name Type Description Attributes
relationship Enum wasGeneratedBy | ...
reference String resourceID (a reference to the "originator" Resource associated to the resource the facet is attached to by the relationship)
provenanceDocument String ... E.g. the xml format
provenanceDocumentSchema String ... E.g. a reference to the format
Known Usage
Source Relation Multiplicity Target Description

Schema Facet

The goal of this facet is to provide a way to store a schema. This is an Abstract facet.

Schema Facet
Name Type Description Attributes
name String ... Mandatory=true NotNull=true
description String ... Mandatory=true NotNull=true
schemaURL URL ...
Known Usage
Source Relation Multiplicity Target Description
JSON Schema Facet
JSON Schema Facet
Name Type Description Attributes
content ... ... Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description
XSD Schema Facet
XSD Schema Facet
Name Type Description Attributes
content ... ... Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description

Simple Property Facet

The goal of this facet is to ...

Simple Property Facet
Name Type Description Attributes
name String ... Mandatory=true NotNull=true
value String ... Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description

Software Facet

The goal of this facet is to capture SW related features"

Software Facet
Name Type Description Attributes
name String 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 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 The particular release of the software artefact. E.g. maven version, Service Version in gCube software, artifactId in maven, the software version for retail software Microsoft Office 2013-SP2.
description String A human oriented description of the software artefact being described.
qualifier String E.g. packaging or scope in maven, scope level or sharable level in gCube software, target architecture for retail software x86 or amd64.
optional Boolean .... usesd in maven and in gcube
Known Usage
Source Relation Multiplicity Target Description

State Facet

The goal of this facet is to ...

State Facet
Name Type Description Attributes
value String The value of the state. Must be compliant with schema. Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description
Container State Facet
Container State Facet
Name Type Description Attributes
value String The value of the state Mandatory=true NotNull=true Regex=(started|ready|certified|down|failed)
Known Usage
Source Relation Multiplicity Target Description
Service State Facet
Service State Facet
Name Type Description Attributes
value String The value of the state Mandatory=true NotNull=true Regex=(STARTED|ready|down|failed)
Known Usage
Source Relation Multiplicity Target Description

Subject Facet

The goal of this facet is to ...

Subject Facet
Name Type Description Attributes
value String The value of the state. Must be compliant with schema. Mandatory=true NotNull=true
schema URI The URI of the schema. It is only an informative field. It is not used for validation from IS part. Mandatory=true NotNull=true
Known Usage
Source Relation Multiplicity Target Description

Relations

Every relation has:

Relation Property

Name Type Description
referentialIntegrity Enum I.e. onDeleteCascadeWhenOrphan, onDeleteCascade, onDeleteKeep. The meaning is related to the relation direction.
accessPolicy Embedded (i.e. AccessPolicy) A policy is characterized by a name, a description, and the period ([start], [end]) when the policies apply
expiryTime Long The expiry date can be used to model the time until the relationship is valid, Expiry time in milliseconds. Represent the difference, measured in milliseconds, between the creation time and midnight, January 1, 1970 UTC

isRelatedTo

isRelatedTo
Source Relation Multiplicity Target Description
Resource isRelatedTo 0..n Resource

belongsTo

belongsTo extends isRelatedTo
Source Relation Multiplicity Target Description
Person belongsTo 0..n Legal Body ...

callsFor

callsFor extends isRelatedTo
Source Relation Multiplicity Target Description
Service callsFor 0..n Service

demands

demands extends isRelatedTo
Source Relation Multiplicity Target Description
Virtual Service demands 0..n Software

dependsOn

dependsOn extends isRelatedTo
Source Relation Multiplicity Target Description
Software dependsOn 0..n Software

discovers

discovers extends isRelatedTo
Source Relation Multiplicity Target Description
E-Service discovers 0..n E-Service

hosts

hosts extends isRelatedTo
Source Relation Multiplicity Target Description
Hosting Node hosts 0..n E-Service

isActivatedBy

isActivatedBy extends isRelatedTo
Source Relation Multiplicity Target Description
Running Plugin isActivatedBy 1..1 E-Service

isConfiguredBy

isConfiguredBy extends isRelatedTo
Source Relation Multiplicity Target Description
Software isConfiguredBy 0..n Configuration Template

isCorrelatedTo

isCorrelatedTo extends isRelatedTo
Source Relation Multiplicity Target Description
Dataset isCorrelatedTo 0..n Dataset
isPartOf
isPartOf extends isRelatedTo
Source Relation Multiplicity Target Description
Concrete Dataset isPartOf 0..n Dataset

isCustomizedBy

isCustomizedBy extends isRelatedTo
Source Relation Multiplicity Target Description
Service isCustomizedBy 0..n Configuration

isDerivationOf

isDerivationOf extends isRelatedTo
Source Relation Multiplicity Target Description
Configuration isDerivationOf 1..1 Configuration Template

isManagedBy

isManagedBy extends isRelatedTo
Source Relation Multiplicity Target Description
Hosting Node isManagedBy 0..n Site

isPluginOf

isPluginOf extends isRelatedTo
Source Relation Multiplicity Target Description
Plugin isPluginOf 1..n Software

isPoweredBy

isPoweredBy extends isRelatedTo
Source Relation Multiplicity Target Description
Hosting Node isPoweredBy 0..n Software

manages

manages extends isRelatedTo
Source Relation Multiplicity Target Description
Service manages 0..n Dataset

requires

requires extends isRelatedTo
Source Relation Multiplicity Target Description
Software requires 0..n Service

runs

runs extends isRelatedTo
Source Relation Multiplicity Target Description
E-Service runs 0..n Software

runsPlugin

runsPlugin extends runs
Source Relation Multiplicity Target Description
Running Plugin runsPlugin 1..1 Plugin

uses

uses extends isRelatedTo
Source Relation Multiplicity Target Description
E-Service uses 0..n E-Service

consistsOf

isIdentifiedBy
Source Relation Multiplicity Target Description
Resource consistsOf 1..n Facet

isIdentifiedBy

isIdentifiedBy extends consistsOf
Source Relation Multiplicity Target Description
Definition
Resource isIdentifiedBy 1..n Facet
Known Usage
Actor isIdentifiedBy 1..n Contact Facet
Legal Body isIdentifiedBy 1..n Contact Facet
Person isIdentifiedBy 1..n Contact Facet
Configuration Template isIdentifiedBy 1..n Identifier Facet
Configuration isIdentifiedBy 1..n Identifier Facet
Dataset isIdentifiedBy 1..n Identifier Facet
Concrete Dataset isIdentifiedBy 1..n Identifier Facet
Service isIdentifiedBy 1..n Facet
Virtual Service isIdentifiedBy 1..n Software Facet ...
E-Service isIdentifiedBy 1..1 Software Facet ...
Schema isIdentifiedBy 1..n Identifier Facet ...
Site isIdentifiedBy 1..n Identifier Facet ...
Software isIdentifiedBy 1..n Software Facet Software coordinates which identify the Software per se.
Plugin isIdentifiedBy 1..n Software Facet Software coordinates which identify the Plugin per se.

hasCoverage

Abstract hasCoverage extends consistsOf
Source Relation Multiplicity Target Description
Definition
Resources hasCoverage 0..n Coverage Facet ...
Known Usage
Dataset hasCoverage 1..n Coverage Facet ...
hasTemporal
hasTemporal extends hasCoverage
Source Relation Multiplicity Target Description
Definition
Resources hasTemporal 0..n Coverage Facet ...
Known Usage
Dataset hasTemporal 0..n Coverage Facet ...
hasSpatial
hasSpatial extends hasCoverage
Source Relation Multiplicity Target Description
Definition
Resources hasSpatial 0..n Coverage Facet ...
Known Usage
Dataset hasSpatial 0..n Coverage Facet ...

hasMemory

Abstract hasMemory extends consistsOf
Source Relation Multiplicity Target Description
Definition
Resources hasMemory 0..n Memory Facet ...
hasPersistent
hasPersistent extends hasMemory
Source Relation Multiplicity Target Description
Definition
Resources hasPersistent 0..n Memory Facet ...
Known Usage
Hosting Node hasPersistent 1..n Memory Facet Disk Space
hasVolatile
hasVolatile extends hasMemory
Source Relation Multiplicity Target Description
Definition
Resources hasVolatile 0..n Memory Facet ...
Known Usage
Hosting Node hasVolatile 1..n Memory Facet RAM

hasContact

Abstract hasContact extends consistsOf
Source Relation Multiplicity Target Description
Definition
Resource hasContact 0..n Contact Facet
Known Usage
Dataset hasContact 1..n Contact Facet ...


hasContributor
hasContributor extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasContributor 0..n Contact Facet
Known Usage
Dataset hasContributor 0..n Contact Facet Is he the contributor
hasCreator
hasCreator extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasCreator 0..n Contact Facet
Known Usage
Dataset hasCreator 0..n Contact Facet Is he the creator
hasCurator
hasCurator extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasCurator 0..n Contact Facet
Known Usage
Dataset hasCurator 0..n Contact Facet Is he the curator
hasDeveloper
hasDeveloper extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasDeveloper 0..n Contact Facet
Known Usage
hasMaintainer
hasMaintainer extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasMaintainer 0..n Contact Facet
Known Usage
Dataset hasMaintainer 0..n Contact Facet Is he the maintainer
hasManager
hasManager extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasManager 0..n Contact Facet
Known Usage
hasOwner
hasOwner extends hasContact
Source Relation Multiplicity Target Description
Definition
Resource hasOwner 0..n Contact Facet
Known Usage
Dataset hasOwner 0..n Contact Facet Is he the owner

Resources

Every Resource has:

A class can be identified as Abstract. This means that cannot be instantiated. uses specialization instead. It is not required that an Abstract class establish an isIdentifiedBy relation with a Facet.

Resource

Abstract Resource Profile
This entity is conceived to describe every "main thing" to be registered and discovered by the Information System.
Source Relation Multiplicity Target Description
Facets
Resource isIdentifiedBy 1..n Facet Any Resource has at least one Facet which in some way allow to identify the Resource per se.
Resource consistsOf 0..n Facet Any Resource consist of zero or more Facets which describes the different aspects of the facet.
Resources
Resource isRelatedTo 0..n Resource Any Resource can be related to any other resource.

The following Resources have been identified:

Actor

Abstract Actor
Source Relation Multiplicity Target Description
Facets
Actor isIdentifiedBy 1..n Contact Facet An Actor has at least a Contact Facet which permit to identify the Actor per se.
Actor hasContact 0..n Contact Facet An Actor can have other Contact Facets which provide secondary contact information.
Resources
Actor isRelatedTo 0..n ... ...
Legal Body
Legal Body extends Actor
Source Relation Multiplicity Target Description
Facets
Legal Body isIdentifiedBy 1..n Contact Facet A Legal Body has at least a Contact Facet which permit to identify the Legal Body per se.
Resources
Person belongsTo 0..n Legal Body ...
Person
Person extends Actor
Source Relation Multiplicity Target Description
Facets
Person isIdentifiedBy 1..n Contact Facet A Person has at least a Contact Facet which permit to identify the Person per se.
Resources
Person belongsTo 0..n Legal Body ...

Configuration Template

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.

Configuration Profile
Source Relation Multiplicity Target Description
Facets
Configuration Template isIdentifiedBy 1..n Identifier Facet ...
Configuration Template consistsOf 1..n Simple Property Facet ...
Resources
Configuration isDerivationOf 1..1 Configuration Template ...
Software isConfiguredBy 0..n Configuration Template ...


Configuration
Configuration Profile extends
Source Relation Multiplicity Target Description
Facets
Configuration isIdentifiedBy 1..n Identifier Facet ...
Resources
Configuration isDerivationOf 1..1 Configuration Template ...
Service isCustomizedBy 0..n Configuration ...

Dataset

Dataset Profile
Source Relation Multiplicity Target Description
Facets
Dataset isIdentifiedBy 1..n Identifier Facet ...
Dataset hasContact 1..n Contact Facet ...
Dataset hasContributor 0..n Contact Facet Is he the contributor
Dataset hasCreator 0..n Contact Facet Is he the creator
Dataset hasCurator 0..n Contact Facet Is he the curator
Dataset hasMaintainer 0..n Contact Facet Is he the maintainer
Dataset hasOwner 0..n Contact Facet Is he the owner
Dataset consistsOf 0..n Access Point Facet The embargoState can be modeled through the access policy defined in the consistsOf relation
Dataset consistsOf 0..n License Facet The duration of license if any can can be modeled through the expiry date defined in the consistsOf relation
Dataset consistsOf 0..n Event Facet ...
Dataset consistsOf 0..n Provenance Facet ...
Dataset hasCoverage 1..n Coverage Facet ...
Dataset hasTemporal 0..n Coverage Facet ...
Dataset hasSpatial 0..n Coverage Facet ...
Dataset consistsOf 0..n Descriptive Metadata Facet ...
Dataset consistsOf 0..n Subject Facet ...
Resources
Dataset isCorrelatedTo 0..n Dataset ...
Concrete Dataset isPartOf 0..n Dataset ...
Service manages 0..n Dataset ...
Concrete Dataset
Concrete Dataset Profile extends Dataset Profile
Source Relation Multiplicity Target Description
Facets
Concrete Dataset isIdentifiedBy 1..n Identifier Facet
Concrete Dataset hasMaintainer 1..n Contact Facet Is he the maintainer
Concrete Dataset consistsOf 1..n Access Point Facet The embargoState can be modeled through the access policy defined in the consistsOf relation
Resources
Concrete Dataset isPartOf 0..n Dataset ...

Service

Abstract Service Profile
Source Relation Multiplicity Target Description
Facets
Service isIdentifiedBy 1..n Facet
Resources
Service callsFor 0..n Service ...
Service isCustomizedBy 0..n Configuration ...
Service manages 0..n Dataset ...
Software requires 0..n Service ...
E-Service
E-Service Profile extends Service Profile
Source Relation Multiplicity Target Description
Facets
E-Service isIdentifiedBy 1..n Software Facet The software enabling the E-Service capabilities
E-Service consistsOf 0..n Software Facet Software available in the E-Service environment that characterizes the specific E-Service instance
E-Service consistsOf 1..n Access Point Facet Identify the endpoints of the E-Service
E-Service consistsOf 1..n Event Facet E.g. ActivationTime, DeploymentTime
E-Service consistsOf 1..1 Service State Facet I.e. STARTED, ready, down, failed
E-Service consistsOf 0..n License Facet The specific terms of use for programmatic access to the service
Resources
E-Service discovers 0..n E-Service A reference to any other E-Service, the E-Service instance is discovering through query on IS.
E-Service runs 0..n Software ...
E-Service uses 0..n E-Service A reference to any other E-Service, the E-Service instance is invoking.
Hosting Node hosts 0..n E-Service ...
Running Plugin isActivatedBy 1..1 E-Service A reference to the E-Service is running the plugin.


Running Plugin
Running Plugin Profile extends E-Service Profile
Source Relation Multiplicity Target Description
Facets
Running Plugin isIdentifiedBy 1..1 Software Facet The software enabling the Running Plugin
Resources
Running Plugin isActivatedBy 1..1 E-Service A reference to the E-Service is running the plugin.
Running Plugin runsPlugin 0..n Plugin ...
Hosting Node
Hosting Node Profile extends Service Profile
Source Relation Multiplicity Target Description
Facets
Hosting Node isIdentifiedBy 1..n Network Address Facet ...
Hosting Node consistsOf 1..n CPU Facet CPU Information
Hosting Node hasPersistent 1..n Memory Facet Disk Space
Hosting Node hasVolatile 1..n Memory Facet RAM
Hosting Node consistsOf 1..n Event Facet ...
Hosting Node consistsOf 1..1 Container State Facet I.e. started, ready, certified, down, failed
Hosting Node consistsOf 0..n Simple Property Facet E.g. Environment Variables
Hosting Node consistsOf 0..n Software Facet Useful to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System
Resources
Hosting Node hosts 0..n E-Service A reference to any E-Service instance, the Hosting Node instance is hosting.
Hosting Node isManagedBy 0..n Site ...
Hosting Node isPoweredBy 0..n Software ...
Virtual Service
Virtual Service Profile extends Service Profile
Source Relation Multiplicity Target Description
Facets
Virtual Service isIdentifiedBy 1..n Software Facet ...
Resources
Virtual Service demands 0..n Software Facet ...

Schema

Schema Profile
Source Relation Multiplicity Target Description
Facets
Schema isIdentifiedBy 1..n Schema Facet ...
Schema hasContact 1..n Contact Facet ...
Schema consistsOf 0..n Descriptive Metadata Facet ...
Schema consistsOf 0..n Subject Facet ...
Resources
Schema ... 0..n ... ...

Site

Site Profile
Source Relation Multiplicity Target Description
Facets
Site isIdentifiedBy 1..n Identifier Facet ...
Site hasContact 1..n Contact Facet ...
Site hasMaintainer 1..n Contact Facet ...
Site hasManager 1..n Contact Facet ...
Site consistsOf 1..n Location Facet ...
Site consistsOf 1..n Network Address Facet Network address ...
Resources
Hosting Node isManagedBy 0..n Site ...

Software

Software Profile
Source Relation Multiplicity Target Description
Facets
Software isIdentifiedBy 1..n Software Facet Software coordinates which identify the Software per se.
Software consistsOf 1..n Software Facet Apart the one connected with isIdentifiedBy relation (gCube coordinates) the others identify the sw in other way e.g. (Maven coordinates)
Software consistsOf 1..n Access Point Facet Links to maven artifact on nexus, javadoc, wiki, svn ...
Software consistsOf 1..n License Facet ...
Software consistsOf 1..n State Facet E.g. Deprecated, Active, Obsolete
Resources
Software dependsOn 0..n Software ...
Software isConfiguredBy 0..n Configuration Template E.g. Accounting Sw uses it to discover the configuration
Software requires 0..n Service E.g. A software requiring a specific database
Virtual Service demands 0..n Software ...
E-Service runs 0..n Software ...
Hosting Node isPoweredBy 0..n Software ...
Plugin isPluginOf 0..n Software ...

Plugin

Plugin Profile extends Software Profile
Source Relation Multiplicity Target Description
Facets
Plugin isIdentifiedBy 1..n Software Facet Software coordinates which identify the Plugin per se.
Resources
Plugin isPluginOf 1..n Software A reference to the Software this Plugin extends capabilities.
Running Plugin runsPlugin 0..n Plugin ...

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 want 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.

Internal Entity and Relation

For internal use only are defined the following entity and relation:

Context

Model a Context (aka scope)

isParentOf

Source Target Description
Context Context