CASCaRA Metamodel and Semantic Infrastructure

CASCaRA Metamodel and Semantic Infrastructure

CASCaRA Metamodel

Properties

Element Type Package

Statements

CASCaRA Metamodel contains ☆  aLink
☆  anElement
☆  anEntity
☆  aPackage
☆  aProperty
☆  aRelationship
☆  aSourceLink
☆  aTargetLink
☆  Element
☆  Entity
☆  Enumeration
☆  Identifiable
☆  Item
☆  Link
☆  Property
☆  Relationship
▣  CASCaRA Metamodel Diagram

▣  CASCaRA Metamodel Diagram

The following major design goals are pursued:

  • Separate syntax and semantics: The metamodel governs the graph pattern independently of the ontology. Any software depends on the metamodel and doesn’t need updating, when the ontology evolves over time.
  • Simplify transformation: A graph pattern is designed which may be represented in RDF, JSON-LD, GQL and OOP alike. Bidirectional transformations between any of those formats shall be possible without data-loss. Admittedly this ‘sweet-spot’ has reduced expressivity when compared with any of the listed data formats, but the choice of implementation technologies is maximized. Verification and validation will show that the resulting expressivity of the graph is sufficient for the purpose.

The metamodel is a 'platform independent model' in OMG terms and defines both the classes (above the dashed line) and their instances (below the dashed line) for the CASCaRA Product Information Graph. Both the classes and the instances are data:

  • Entity and anEntity are used for model elements, such as a requirement, a function or a system component.
  • Relationship and aRelationship are used for relations between elements, such as a 'system component satisfies a requirement'. A relationship class may define the classes of entities or relationships, whose instances are eligible as source or target in a directed relationship.
  • Every Entity and Relationship can define an individual set of Property, each of which specifies a data type and range. For example, a requirement might have three properties, such as a „Title“ with data type „String of max. length 96“, a „Description“ with data type „String“ without restriction and a „Priority“ with data type „String with a single choice of ['high', 'medium', 'low']“.
  • A datatype may be any of those known from XML. As described above, some parameters may restrict the value range, such as minimum and/or maximum value of a number, a string length or a set of enumerated values.
  • anEntity or aRelationship is an instance of Entity or Relationship respectively. Each instance usually has a set of aProperty corresponding with the Property of its class.

Note:

  • "Technical" super-class and sub-class refer to the UML elements used in this metamodel by means of UML:Generalization.
  • "Semantic" super-class and sub-class refer to associations between the real world instances of the metamodel items as specified by the UML associations named 'specializes'.
  • As usual, the classes with white background and italic name are abstract.

CASCaRA Metamodel Diagram.png

Properties

Element Type Diagram
Notation UML Class Diagram

Statements

CASCaRA Metamodel
contains ▣  CASCaRA Metamodel Diagram
▣  CASCaRA Metamodel Diagram shows ○  context
○  creator
○  datatype
○  defaultValue
○  definition
○  description
○  enumeratedValue
○  icon
○  id
○  itemType
○  maxCount
○  maxInclusive
○  maxLength
○  minCount
○  minInclusive
○  modified
○  pattern
○  priorRevision
○  revision
○  title
○  unit
○  value
☆  aLink
☆  anElement
☆  anEntity
☆  aPackage
☆  aProperty
☆  aRelationship
☆  aSourceLink
☆  aTargetLink
☆  Element
☆  Entity
☆  Enumeration
☆  Identifiable
☆  Item
☆  Link
☆  Property
☆  Relationship

☆  aProperty

Each property belongs to a single anEntity, aRelationship or aPackage. A property has no identifier, thus a property update results in a new revision of the item to which it belongs. Is 'payload' having a clear meaning, datatype and range through the respective Property class.

Details:

  • A property may be required or not depending on the attributes minCount and maxCount of its class, but an existing property must have a value.
  • A property may be composed of multiple properties to form a structured data set according to its Property class.

Properties

Element Type Class

Statements

☆  aProperty composes ☆  aProperty
CASCaRA Metamodel
contains ☆  aProperty
☆  aProperty has part ○  value
☆  aProperty hasClass ☆  Property
☆  anElement
hasProperty ☆  aProperty
▣  CASCaRA Metamodel Diagram
shows ☆  aProperty
☆  aProperty specializes ☆  Item

○  value

The value of a property.

Details:

  • If the datatype of the property's class is string, the value is a language string consisting of value and IETF language tag ('multiLangueText').
  • Otherwise the value is a simple value.

Properties

Element Type uml:Property

Statements

☆  aProperty
has part ○  value
▣  CASCaRA Metamodel Diagram
shows ○  value

☆  aSourceLink

A link instance serving as source for a reified relationship.

From a semantic point of view, there is no need to make a distinction between aSourceLink and aTargetLink at the metamodel level. The distinction can be done and is made at ontology level in the CASCaRA Semantic Infrastructure. However it is much easier to check the pattern/schema/shape and to ingest data, if the itemType is explicit.

Details:

  • aSourceLink may be required or not depending on the attributes minCount and maxCount of its class, but an existing one must have a value.

Example:

  • A single 'satisfies' relationship can relate one or many function instances to a requirement instance.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aSourceLink
☆  aRelationship
hasSourceLink ☆  aSourceLink
▣  CASCaRA Metamodel Diagram
shows ☆  aSourceLink
☆  aSourceLink specializes ☆  aLink

☆  Identifiable

All technical sub-classes of this class are identifiable, means they have an identifier, a title (name) and optionally a description.

Details:

  • The class is abstract.
  • All attributes are inherited by its subclasses.
  • All class level items in the upper part of the diagram are commonly released and made available with an URL path including the revision. Hence, multiple revisions of the class set may exist in parallel.
  • All instance level items in the lower part of the diagram may have individual revisions with their respective revision, modification date and creator. The prior revision identifier is memorized to support change history and branching. In case of a merge, there are two prior revisions.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Identifiable
☆  aPackage
graph ☆  Identifiable
☆  Identifiable has part ○  description
○  id
○  title
▣  CASCaRA Metamodel Diagram
shows ☆  Identifiable
☆  anElement
☆  Element
☆  Enumeration
☆  Link
☆  Property
specializes ☆  Identifiable
☆  Identifiable specializes ☆  Item

○  id

A globally unique identifier, either a fully qualified URI or a name with namespace standing for an URI, see aPackage context.

Properties

Element Type uml:Property

Statements

☆  Identifiable
has part ○  id
▣  CASCaRA Metamodel Diagram
shows ○  id

○  title

A multiLanguageText. Maps to dcterms:title.

Details:

  • Here a multiplicity [0..1] is given, but in fact that depends on the itemType.
  • For all classes (Enumeration, Property, Link, Entity and Relationship), a title is mandatory.
  • In case of anEntity at least one of title or description is required, because it must be possible to represent a text paragraph as anEntity, which simply does not have a title.
  • In case of aRelationship both title and description are optional. If missing the title and/or description of the respective Relationship class applies. This avoids lots of repetition in real-world data-sets.

Properties

Element Type uml:Property

Statements

☆  Identifiable
has part ○  title
▣  CASCaRA Metamodel Diagram
shows ○  title

○  description

A multiLanguageText. Maps to dcterms:description.

Details:

  • Here a multiplicity [0..1] is given, but in fact that depends on the itemType.
  • For all classes (Enumeration, Property, Link, Entity and Relationship), a title is mandatory.
  • In case of anEntity at least one of title or description is required, because it must be possible to represent a text paragraph as anEntity, which simply does not have a title.
  • In case of aRelationship both title and description are optional. If missing the title and/or description of the respective Relationship class applies. This avoids lots of repetition in real-world data-sets.

Properties

Element Type uml:Property

Statements

☆  Identifiable
has part ○  description
▣  CASCaRA Metamodel Diagram
shows ○  description

☆  Element

A technical super-class of Entity (class of entities) and Relationship (class of relationships).

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its technical sub-classes Entity and Relationship.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Element
☆  Link
enumeratedEndpoint ☆  Element
☆  Element enumeratedProperty ☆  Property
☆  Element has part ○  definition
○  icon
▣  CASCaRA Metamodel Diagram
shows ☆  Element
☆  Entity
☆  Relationship
specializes ☆  Element
☆  Element specializes ☆  Identifiable

○  definition

A multiLanguageText mandatory for all classes. Maps to skos:definition.

Properties

Element Type uml:Property

Statements

☆  Element
has part ○  definition
▣  CASCaRA Metamodel Diagram
shows ○  definition

○  icon

An icon defined with a class can be used to decorate the instances.

Example:

  • Folders as sub-class of Organizer and thus Entity may specify a UTF-8 character 🗀 for use by folders grouping certain model-elements.
  • A data-URL of an icon is also permitted.

Properties

Element Type uml:Property

Statements

☆  Element
has part ○  icon
▣  CASCaRA Metamodel Diagram
shows ○  icon

☆  Link

A Link is an identifiable link class. A Link is an owl:ObjectProperty.

Example:

  • An Organizer (semantic sub-class of Entity) may list Model-Elements (another semantic sub-class of Entity) to provide a document outline.
  • As such the Link class lists is specified as enumeratedTargetLink by Organizer.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Link
☆  Link enumeratedEndpoint ☆  Element
☆  Enumeration
☆  Relationship
enumeratedSourceLink ☆  Link
☆  Entity
☆  Relationship
enumeratedTargetLink ☆  Link
☆  Link has part ○  maxCount
○  minCount
☆  aLink
hasClass ☆  Link
▣  CASCaRA Metamodel Diagram
shows ☆  Link
☆  Link specializes ☆  Identifiable
☆  Link

○  minCount

An instance must have at least this number of properties of this class. Is '0' by default. This applies to both instances of a Property class and a Link class.

For example, if a property class 'Priority' has a minCount=1 and a requirement class specifies an enumeratedProperty 'Priority', a requirement instance must have at least one property of class Priority (with a value).

Properties

Element Type uml:Property

Statements

☆  Link
☆  Property
has part ○  minCount
▣  CASCaRA Metamodel Diagram
shows ○  minCount

○  maxCount

An instance must have at most this number of properties of this class. Is unbounded (infinite) by default. This applies to both instances of a Property class and a Link class.

For example, if a property class 'Priority' has a maxCount=1 and a requirement class specifies an enumeratedProperty 'Priority', a requirement instance must have no more than one property of class Priority (with a value).

Properties

Element Type uml:Property

Statements

☆  Link
☆  Property
has part ○  maxCount
▣  CASCaRA Metamodel Diagram
shows ○  maxCount

☆  aTargetLink

A link instance pointing to the target of a reified aRelationship or to one or more targets of anEntity.

From a semantic point of view, there is no need to make a distinction between aSourceLink and aTargetLink at the metamodel level. The distinction can be done and is made at ontology level in the CASCaRA Semantic Infrastructure. However it is much easier to check the pattern/schema/shape and to ingest data, if the itemType is explicit.

Details:

  • aTargetLink may be required or not depending on the attributes minCount and maxCount of its class, but an existing one must have a value.

Example:

  • A 'satisfies' relationship can relate a function instance to one or multiple requirement instances (targets).
  • An organizer (see CASCaRA Semantic Infrastructure) such as a chapter title (folder) in an outline can point to one or more contained items, be it anEntity or aRelationship or other.
  • anEntity, aRelationship or aPackage may point to value of an Enumeration.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aTargetLink
☆  anEntity
☆  aRelationship
hasTargetLink ☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows ☆  aTargetLink
☆  aTargetLink specializes ☆  aLink

☆  Entity

Entity is a class of model elements, such as a system component or a requirement. An Entity is an owl:Class.

Details:

  • Entity should have a title (name) and may have a description (definition).
  • Entity may specify (configure) zero to many classes of properties its instances may have.
  • The definitions of the entity together with those of the properties may be used to build user dialogs with input verification as well as to check its instances whether all property values have a correct type and value range as well as whether all required ones are present.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Entity
☆  Entity enumeratedTargetLink ☆  Link
☆  anEntity
☆  aPackage
hasClass ☆  Entity
▣  CASCaRA Metamodel Diagram
shows ☆  Entity
☆  Entity specializes ☆  Element
☆  Entity

☆  anEntity

Is used for instances of model-elements such as a system component or a requirement. Is 'payload' having a clear meaning through the respective Entity class.

Details:

  • An entity must have either a title or a description - or both. This allows to compose documents including text paragraphs without title.
  • The entity's class enumerates the classes of properties it may have.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  anEntity
☆  anEntity hasClass ☆  Entity
☆  anEntity hasTargetLink ☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows ☆  anEntity
☆  anEntity specializes ☆  anElement

☆  aRelationship

Is used for relations between entities, such as a 'system component satisfies a requirement'. All relationships are bilateral and directed. Is 'payload' having a clear meaning through the respective Relationship class.

Details:

  • This is a reified graph edge and must have exactly one source and target entity each. The source must be an entity or relationship with a class defined by an eligible source class of its Relationship. The same applies for the target.
  • Even though a relationship instance may have an individual title, it is advised to omit it and assume its class' title when needed to assure that relationships of the same class are named equally.
  • The relationship's class enumerates the classes of properties it may have.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aRelationship
☆  aRelationship hasClass ☆  Relationship
☆  aRelationship hasSourceLink ☆  aSourceLink
☆  aRelationship hasTargetLink ☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows ☆  aRelationship
☆  aRelationship specializes ☆  anElement

☆  Item

The technical super-class of all CASCaRA metamodel items specifying the type of item to allow for simple schema checking and transformation.

Details:

  • The class is abstract.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Item
☆  Item has part ○  itemType
▣  CASCaRA Metamodel Diagram
shows ☆  Item
☆  aLink
☆  aProperty
☆  Identifiable
specializes ☆  Item

○  itemType

Classifies classes and individuals (instances) in terms of this metamodel. It must be made explicit in all representations without native reasoner, such as in object-oriented programming, JSON, JSON-LD and XML. It can be omitted in RDF/OWL, as at the top of the class hierarchy there shall be a class corresponding to the metamodel itemType (see CASCARA Semantic Infrastructure and the itemType can be derived with a standard OWL reasoner.

Details:

  • Here it is modeled as a string, but in fact it is an enumerated value from all concrete metamodel items (represented as UML classes), thus [Enumeration, Link, Property, Entity, Relationship, aPackage, aSourceLink, aTargetLink, aProperty, anEntity, aRelationship].

Properties

Element Type uml:Property

Statements

☆  Item
has part ○  itemType
▣  CASCaRA Metamodel Diagram
shows ○  itemType

☆  aLink

Is a technical super-class for link instances.

Details:

  • The class is abstract.
  • A list of enumerated endpoints (references) per link instance is possible.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aLink
☆  aLink hasClass ☆  Link
☆  aLink hasEndpoint ☆  anElement
▣  CASCaRA Metamodel Diagram
shows ☆  aLink
☆  aSourceLink
☆  aTargetLink
specializes ☆  aLink
☆  aLink specializes ☆  Item

☆  anElement

A technical superclass of anEntity and aRelationship.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its sub-classes.
  • Sub-classes may have individual revisions with revision id, modification date and creator. The prior revision id is memorized to support change history and branching. In case of a merge, there are two prior revisions.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  anElement
☆  anElement has part ○  creator
○  modified
○  priorRevision
○  revision
☆  aLink
hasEndpoint ☆  anElement
☆  anElement hasProperty ☆  aProperty
▣  CASCaRA Metamodel Diagram
shows ☆  anElement
☆  anEntity
☆  aPackage
☆  aRelationship
specializes ☆  anElement
☆  anElement specializes ☆  Identifiable

○  modified

A ISO-8601 DateTime value recording the point in time of the last change.

Properties

Element Type uml:Property

Statements

☆  anElement
has part ○  modified
▣  CASCaRA Metamodel Diagram
shows ○  modified

○  revision

A unique string identifying the revision of the entity or relationship instance.

Properties

Element Type uml:Property

Statements

☆  anElement
has part ○  revision
▣  CASCaRA Metamodel Diagram
shows ○  revision

○  priorRevision

Links to the previous revisions of an entity or relationship instance. It is a list with

  • zero elements, if it is the first revision,
  • one element for a subsequent revision or
  • two elements when two branches are merged.

Properties

Element Type uml:Property

Statements

☆  anElement
has part ○  priorRevision
▣  CASCaRA Metamodel Diagram
shows ○  priorRevision

○  creator

The person committing the last change. Is often an e-mail address.

Properties

Element Type uml:Property

Statements

☆  anElement
has part ○  creator
▣  CASCaRA Metamodel Diagram
shows ○  creator

☆  Property

Every class Entity and Relationship can have an individual set of configurable properties, each of which is uniquely defined by datatype and range. A Property is an owl:ObjectProperty when enumeratedValues are defined and is an owl:DatatypeProperty otherwise.

Example: A requirement might have a list with three properties, such as

  • Title with data type „String of max. length 96“,
  • Description with data type „String“ wíthout length restriction and
  • Priority with data type „String with a single choice of ['high', 'medium', 'low']“.

Details:

  • Property class must have a title and may have a description named.
  • Property class may define a minimum and maximum count of values.
  • Property class must define a datatype and may restrict its range by minInclusive, maxInclusive or or a pattern defined by Regular Expression.
  • Property class may define a set of enumerated values which must of course satisfy its own data type and range
  • A property class may define a default value which must of course satisfy its own data type and range.
  • Property class may be composed of multiple property classes to form a structured data type (xs:complexType). The structure must be a tree, thus without cyclic dependency.

Properties

Element Type Class

Statements

☆  Property composes ☆  Property
CASCaRA Metamodel
contains ☆  Property
☆  Element
enumeratedProperty ☆  Property
☆  Property has part ○  datatype
○  defaultValue
○  maxCount
○  maxInclusive
○  maxLength
○  minCount
○  minInclusive
○  pattern
○  unit
☆  aProperty
hasClass ☆  Property
▣  CASCaRA Metamodel Diagram
shows ☆  Property
☆  Property specializes ☆  Identifiable
☆  Property

○  datatype

One of the xs: data types. Shall be anyURI.

Properties

Element Type uml:Property

Statements

☆  Enumeration
☆  Property
has part ○  datatype
▣  CASCaRA Metamodel Diagram
shows ○  datatype

○  minCount

An instance must have at least this number of properties of this class. Is '0' by default. This applies to both instances of a Property class and a Link class.

For example, if a property class 'Priority' has a minCount=1 and a requirement class specifies an enumeratedProperty 'Priority', a requirement instance must have at least one property of class Priority (with a value).

Properties

Element Type uml:Property

Statements

☆  Link
☆  Property
has part ○  minCount
▣  CASCaRA Metamodel Diagram
shows ○  minCount

○  maxCount

An instance must have at most this number of properties of this class. Is unbounded (infinite) by default. This applies to both instances of a Property class and a Link class.

For example, if a property class 'Priority' has a maxCount=1 and a requirement class specifies an enumeratedProperty 'Priority', a requirement instance must have no more than one property of class Priority (with a value).

Properties

Element Type uml:Property

Statements

☆  Link
☆  Property
has part ○  maxCount
▣  CASCaRA Metamodel Diagram
shows ○  maxCount

○  maxLength

Maximum length of a property value with datatype 'xs:string'. Is not allowed with any other datatype.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  maxLength
▣  CASCaRA Metamodel Diagram
shows ○  maxLength

○  pattern

A Regular Expression that must evaluate successfully with the property value. Can also be used to limit the number of decimals of a number, as there is no restriction like xs:fractionDigits in SHACL.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  pattern
▣  CASCaRA Metamodel Diagram
shows ○  pattern

○  minInclusive

The minimum value a property of this type may have. May be applied only for numeric datatypes. It the intrinsic minimum value of the datatype by default.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  minInclusive
▣  CASCaRA Metamodel Diagram
shows ○  minInclusive

○  maxInclusive

The maximum value a property of this type may have. May be applied only for numeric datatypes. It the intrinsic maximum value of the datatype by default.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  maxInclusive
▣  CASCaRA Metamodel Diagram
shows ○  maxInclusive

○  defaultValue

Optional default value(s) in case a modelElement's property does not have an individual value. It must follow the definitions of the PropertyClass, of course.

Here, the attribute is named 'sh:defaultValue' for clarity and may just be called 'values' in an implementation, as all restrictions and operations of a property's values apply.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  defaultValue
▣  CASCaRA Metamodel Diagram
shows ○  defaultValue

○  unit

A unit as defined by the International System of Units (SI). A unit can only be defined for a numeric datatype. By default the property has no unit.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  unit
▣  CASCaRA Metamodel Diagram
shows ○  unit

☆  Relationship

Relationship is a class of relationships between two entities to allow assertions such as 'a system component satisfies a requirement'. All relationships are bilateral and directed. This allows for statements according to propositional logic. They can be easily mapped to many technologies such as RDF or even ReqIF. Being reified, a Relationship is an owl:Class.

Details:

  • Relationship must have a title (name) and may have a description (definition).
  • Relationship lists zero to many property classes its instances may have.
  • Relationship may define (configure) entitiy classes or relationship classes, whose instances are eligible as source resp. target in a relationship. If none are defined, all entities and relationships are eligible.
  • Relationship is reified (as a rdfs:Resource in RDF), so that it can be a source or target of another Relationship - to make a statement on a statement.
  • The definitions of a relationship together with those of their properties may be used to build user dialogs with input verfication and to check its instances whether all properties have a correct type and value range as well as whether all required ones are present.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Relationship
☆  Relationship enumeratedSourceLink ☆  Link
☆  Relationship enumeratedTargetLink ☆  Link
☆  aRelationship
hasClass ☆  Relationship
▣  CASCaRA Metamodel Diagram
shows ☆  Relationship
☆  Relationship specializes ☆  Element
☆  Relationship

☆  Enumeration

A class defining a set of enumerated values for use by any set of instances, where each value has an id and a value, either multiLanguageText in case of datatype xs:string or a simple value for all other datatypes.

A corresponding Link class must be defined with an enumeratedEndpoint to this enumeration class. An instance then has zero to many (0..n) aTargetLinks pointing to a value of the enumeration with hasTargetLink (not yet shown in the model diagram - this design is somewhat cumbersome and needs review). The required number of values is defined by minCount and maxCount of the Link class.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Enumeration
☆  Link
enumeratedEndpoint ☆  Enumeration
☆  Enumeration has part ○  datatype
○  enumeratedValue
▣  CASCaRA Metamodel Diagram
shows ☆  Enumeration
☆  Enumeration specializes ☆  Enumeration
☆  Identifiable

○  datatype

One of the xs: data types. Shall be anyURI.

Properties

Element Type uml:Property

Statements

☆  Enumeration
☆  Property
has part ○  datatype
▣  CASCaRA Metamodel Diagram
shows ○  datatype

○  enumeratedValue

Properties

Element Type uml:Property

Statements

☆  Enumeration
has part ○  enumeratedValue
▣  CASCaRA Metamodel Diagram
shows ○  enumeratedValue

☆  aPackage

A container for any selection of metamodel items. Standardized and addressable classes can be excluded from aPackage. Thus aPackage contains specific classes (from organization or project ontologies) plus the instances of interest.

Details:

  • The class of aPackage is formally Entity, but should be a subclass of Organizer (see CASCaRA Semantic Infrastructure).
  • Additional properties such as dcterms:license can be defined in a class.
  • aPackage can be nested.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aPackage
☆  aPackage graph ☆  Identifiable
☆  aPackage has part ○  context
☆  aPackage
☆  aPackage hasClass ☆  Entity
▣  CASCaRA Metamodel Diagram
shows ☆  aPackage
☆  aPackage specializes ☆  anElement

○  context

A list of IRIs per namespace abbreviation. Used as sequence of @prefix in RDF/Turtle, sequence of xmlns: in XML and @context in JSON-LD.

Properties

Element Type uml:Property

Statements

☆  aPackage
has part ○  context
▣  CASCaRA Metamodel Diagram
shows ○  context

CASCaRA Semantic Infrastructure

Properties

Element Type Package

Statements

CASCaRA Semantic Infrastructure contains ☆  depicts
☆  Enumeration
☆  Link
☆  linksEnumeration
☆  linksSource
☆  linksTarget
☆  lists
☆  Property
☆  shows
▣  CASCaRA Semantic Infrastructure Diagram

▣  CASCaRA Semantic Infrastructure Diagram

The CASCaRA Semantic Infrastructure complements the CASCaRA Metamodel by further sub-classing its items. The idea is to keep the metamodel as simple as possible without sacrificing semantic precision.

Let's consider the paradigma of separating syntax and semantics with the objective to shield the software from an ontology under evolution over time. In all likelihood, the CASCaRA Semantic Infrastructure will be used by software for reasons of simplicity. Therefore it is advised to treat the semantic infrastructure similarly to the metamodel: Change it seldomly and keep it downward compatible. That is, software built assuming an older version shall not break when a new version is adopted). So the semantic infrastructure can be seen as an intermediary layer between metamodel and ontology which is managed like the metamodel.

In any case an ontology for use with the CASCaRA Metamodel SHALL sub-class the items of the CASCaRA Semantic Infrastructure.

CASCaRA Semantic Infrastructure Diagram.png

Properties

Element Type Diagram
Notation UML Class Diagram

Statements

CASCaRA Semantic Infrastructure
contains ▣  CASCaRA Semantic Infrastructure Diagram
▣  CASCaRA Semantic Infrastructure Diagram shows ☆  depicts
☆  Enumeration
☆  Link
☆  linksEnumeration
☆  linksSource
☆  linksTarget
☆  lists
☆  Property
☆  shows
Actor
Entity
Event
Feature
Organizer
Outline
Package
Relationship
Requirement
Root
State
Table
Tree
View

Actor

An 'Actor' is a fundamental model element type representing an active entity, be it an activity, a process step, a function, a system component or a role.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Actor
Actor specializes Entity

☆  depicts

A Link class for use by View to enumerate eligible Entity and/or Relationship classes that can own a view (e.g. a state diagram describing the behavior of a component where the latter owns the depicting view).

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  depicts
☆  depicts enumeratedEndpoint Entity
View
enumeratedTargetLink ☆  depicts
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  depicts
☆  depicts specializes ☆  Link

Entity

The semantic foundation for all Entity (class) definitions. Is an owl:Class.

Properties

Element Type Class

Statements

☆  depicts
☆  lists
☆  shows
enumeratedEndpoint Entity
Entity enumeratedTargetLink ☆  linksEnumeration
▣  CASCaRA Semantic Infrastructure Diagram
shows Entity
Actor
Event
Feature
Model-Element
Organizer
Requirement
State
specializes Entity

☆  Enumeration

The semantic foundation for all Enumeration (class) definitions. Is an owl:Class. Has a finite list of values for Properties.

Properties

Element Type cas:Enumeration

Statements

CASCaRA Semantic Infrastructure
contains ☆  Enumeration
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  Enumeration

Event

An 'Event' is a fundamental model element type representing a time reference, a change in condition/value or more generally a synchronization primitive.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Event
Event specializes Entity

☆  Link

The semantic foundation for all Link (class) definitions. Is an owl:ObjectProperty.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  Link
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  Link
☆  depicts
☆  linksEnumeration
☆  linksSource
☆  linksTarget
☆  lists
☆  shows
specializes ☆  Link

State

A 'State' is a fundamental model element type representing a passive entity, be it a value, a condition, an information storage or even a physical shape.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows State
State specializes Entity

Outline

A tree (hierarchical arrangement) of references to graph nodes (vertices) to create a reading sequence. Graph nodes include Entity and Relationship. Outline is used at any level of the tree like a directory folder or universally for section, chapter and paragraph of a document.

Properties

Element Type Class

Statements

Outline enumeratedTargetLink ☆  lists
▣  CASCaRA Semantic Infrastructure Diagram
shows Outline
Outline specializes Tree

☆  lists

A Link class for use by Outline to enumerate eligible Entity and/or Relationship classes.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  lists
☆  lists enumeratedEndpoint Entity
Relationship
Outline
enumeratedTargetLink ☆  lists
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  lists
☆  lists specializes ☆  Link

Table

A specialized Organizer with elements (cells) arranged two-dimensionally in columns and rows. Any element SHALL contain a reference to any Entity or Relationship.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Table
Table specializes Organizer

Model-Element

A Model-Element is an artifact representing a genuine part of a system specification in contrast to an Organizer which is about presenting model-elements.

Properties

Element Type Class

Statements

Model-Element specializes Entity

☆  shows

A Link class for use by View to enumerate eligible Entity and/or Relationship classes that are visible on a view (e.g. model-diagram).

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  shows
☆  shows enumeratedEndpoint Entity
View
enumeratedTargetLink ☆  shows
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  shows
☆  shows specializes ☆  Link

☆  linksTarget

A Link subclass for use by Relationship to enumerate eligible Entity and/or Relationship classes that can serve as a target.

Example:

  • By further specializing this class, a meaningful title can be given to a sourceLink, such as 'employer' in a 'worksFor' relationship being a specialization of Relationship.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  linksTarget
Relationship
enumeratedTargetLink ☆  linksTarget
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  linksTarget
☆  linksTarget specializes ☆  Link

View

A specialized Organizer with elements displayed in two or three dimensions such as a model-diagram, 3D visualization or pie-chart. Any element SHOULD reference any instance of Entity or Relationship.

Properties

Element Type Class

Statements

View enumeratedTargetLink ☆  depicts
☆  shows
▣  CASCaRA Semantic Infrastructure Diagram
shows View
View specializes Organizer

Tree

A specialized Organizer with elements (nodes) arranged in a strictly hierarchical manner. Any element SHALL contain a reference to any Entity or Relationship.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Tree
Outline
specializes Tree
Tree specializes Organizer

Root

A root class serves to anchor organizer structures in a data package. While a graph has no start and no end, a root instance with a subordinated organizer structure offers a way to explore the graph for a given purpose.

Example:

  • A document outline anchored at a root element would define a document to read by auditors and perhaps another one for potential customers.
  • When querying all instances of class Root, a list of available documents is returned.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Root
Root specializes Organizer

☆  linksSource

A Link subclass for use by Relationship to enumerate eligible Entity and/or Relationship classes that can serve as a source.

Example:

  • By further specializing this class, a speaking title can be given to a sourceLink, such as 'employee' in a 'worksFor' relationship being a specialization of Relationship.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  linksSource
Relationship
enumeratedSourceLink ☆  linksSource
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  linksSource
☆  linksSource specializes ☆  Link

Organizer

An Organizer is about presenting genuine a selection of model-elements for a given target group of users, for example a document outline, a table or a diagram.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Organizer
Package
Root
Table
Tree
View
specializes Organizer
Organizer specializes Entity

Relationship

The semantic foundation for all Relationship (class) definitions. Is an owl:Class.

Properties

Element Type Class

Statements

☆  lists
enumeratedEndpoint Relationship
Relationship enumeratedSourceLink ☆  linksSource
Relationship enumeratedTargetLink ☆  linksEnumeration
☆  linksTarget
▣  CASCaRA Semantic Infrastructure Diagram
shows Relationship

☆  Property

The semantic foundation for all Property (class) definitions. Is an owl:DatatypeProperty.

Properties

Element Type cas:Property

Statements

CASCaRA Semantic Infrastructure
contains ☆  Property
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  Property

Requirement

A 'Requirement' is a singular documented physical and functional need that a particular design, product or process must be able to perform. (source: Wikipedia)

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Requirement
Requirement specializes Entity

Feature

A 'Feature' is an intentional distinguishing characteristic of a system, often a unique selling proposition.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Feature
Feature specializes Entity

Package

A Package contains a given selection of CASCaRA items (classes and instances) for a given purpose, such as a component specification for review or in a customer-supplier relationship.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Package
Package specializes Organizer

☆  linksEnumeration

A Link subclass for use by an Entity or Relationship to enumerate eligible Enumeration classes that can serve as a target.

Example:

  • A Requirement specifies a priority, where the priority values are defined in an Enumeration class and the link to use as linksEnumeration.
  • A meaningful link name such as 'has Priority' can be created through a subclass of linksEnumeration.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  linksEnumeration
Entity
Relationship
enumeratedTargetLink ☆  linksEnumeration
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  linksEnumeration
☆  linksEnumeration specializes ☆  Link

Model Elements (Glossary)

Properties

Element Type Model Elements (Glossary)

Actor

An 'Actor' is a fundamental model element type representing an active entity, be it an activity, a process step, a function, a system component or a role.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Actor
Actor specializes Entity

☆  aLink

Is a technical super-class for link instances.

Details:

  • The class is abstract.
  • A list of enumerated endpoints (references) per link instance is possible.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aLink
☆  aLink hasClass ☆  Link
☆  aLink hasEndpoint ☆  anElement
▣  CASCaRA Metamodel Diagram
shows ☆  aLink
☆  aSourceLink
☆  aTargetLink
specializes ☆  aLink
☆  aLink specializes ☆  Item

☆  anElement

A technical superclass of anEntity and aRelationship.

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its sub-classes.
  • Sub-classes may have individual revisions with revision id, modification date and creator. The prior revision id is memorized to support change history and branching. In case of a merge, there are two prior revisions.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  anElement
☆  anElement has part ○  creator
○  modified
○  priorRevision
○  revision
☆  aLink
hasEndpoint ☆  anElement
☆  anElement hasProperty ☆  aProperty
▣  CASCaRA Metamodel Diagram
shows ☆  anElement
☆  anEntity
☆  aPackage
☆  aRelationship
specializes ☆  anElement
☆  anElement specializes ☆  Identifiable

☆  anEntity

Is used for instances of model-elements such as a system component or a requirement. Is 'payload' having a clear meaning through the respective Entity class.

Details:

  • An entity must have either a title or a description - or both. This allows to compose documents including text paragraphs without title.
  • The entity's class enumerates the classes of properties it may have.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  anEntity
☆  anEntity hasClass ☆  Entity
☆  anEntity hasTargetLink ☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows ☆  anEntity
☆  anEntity specializes ☆  anElement

☆  aPackage

A container for any selection of metamodel items. Standardized and addressable classes can be excluded from aPackage. Thus aPackage contains specific classes (from organization or project ontologies) plus the instances of interest.

Details:

  • The class of aPackage is formally Entity, but should be a subclass of Organizer (see CASCaRA Semantic Infrastructure).
  • Additional properties such as dcterms:license can be defined in a class.
  • aPackage can be nested.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aPackage
☆  aPackage graph ☆  Identifiable
☆  aPackage has part ○  context
☆  aPackage
☆  aPackage hasClass ☆  Entity
▣  CASCaRA Metamodel Diagram
shows ☆  aPackage
☆  aPackage specializes ☆  anElement

☆  aProperty

Each property belongs to a single anEntity, aRelationship or aPackage. A property has no identifier, thus a property update results in a new revision of the item to which it belongs. Is 'payload' having a clear meaning, datatype and range through the respective Property class.

Details:

  • A property may be required or not depending on the attributes minCount and maxCount of its class, but an existing property must have a value.
  • A property may be composed of multiple properties to form a structured data set according to its Property class.

Properties

Element Type Class

Statements

☆  aProperty composes ☆  aProperty
CASCaRA Metamodel
contains ☆  aProperty
☆  aProperty has part ○  value
☆  aProperty hasClass ☆  Property
☆  anElement
hasProperty ☆  aProperty
▣  CASCaRA Metamodel Diagram
shows ☆  aProperty
☆  aProperty specializes ☆  Item

☆  aRelationship

Is used for relations between entities, such as a 'system component satisfies a requirement'. All relationships are bilateral and directed. Is 'payload' having a clear meaning through the respective Relationship class.

Details:

  • This is a reified graph edge and must have exactly one source and target entity each. The source must be an entity or relationship with a class defined by an eligible source class of its Relationship. The same applies for the target.
  • Even though a relationship instance may have an individual title, it is advised to omit it and assume its class' title when needed to assure that relationships of the same class are named equally.
  • The relationship's class enumerates the classes of properties it may have.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aRelationship
☆  aRelationship hasClass ☆  Relationship
☆  aRelationship hasSourceLink ☆  aSourceLink
☆  aRelationship hasTargetLink ☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows ☆  aRelationship
☆  aRelationship specializes ☆  anElement

☆  aSourceLink

A link instance serving as source for a reified relationship.

From a semantic point of view, there is no need to make a distinction between aSourceLink and aTargetLink at the metamodel level. The distinction can be done and is made at ontology level in the CASCaRA Semantic Infrastructure. However it is much easier to check the pattern/schema/shape and to ingest data, if the itemType is explicit.

Details:

  • aSourceLink may be required or not depending on the attributes minCount and maxCount of its class, but an existing one must have a value.

Example:

  • A single 'satisfies' relationship can relate one or many function instances to a requirement instance.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aSourceLink
☆  aRelationship
hasSourceLink ☆  aSourceLink
▣  CASCaRA Metamodel Diagram
shows ☆  aSourceLink
☆  aSourceLink specializes ☆  aLink

☆  aTargetLink

A link instance pointing to the target of a reified aRelationship or to one or more targets of anEntity.

From a semantic point of view, there is no need to make a distinction between aSourceLink and aTargetLink at the metamodel level. The distinction can be done and is made at ontology level in the CASCaRA Semantic Infrastructure. However it is much easier to check the pattern/schema/shape and to ingest data, if the itemType is explicit.

Details:

  • aTargetLink may be required or not depending on the attributes minCount and maxCount of its class, but an existing one must have a value.

Example:

  • A 'satisfies' relationship can relate a function instance to one or multiple requirement instances (targets).
  • An organizer (see CASCaRA Semantic Infrastructure) such as a chapter title (folder) in an outline can point to one or more contained items, be it anEntity or aRelationship or other.
  • anEntity, aRelationship or aPackage may point to value of an Enumeration.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  aTargetLink
☆  anEntity
☆  aRelationship
hasTargetLink ☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows ☆  aTargetLink
☆  aTargetLink specializes ☆  aLink

○  context

A list of IRIs per namespace abbreviation. Used as sequence of @prefix in RDF/Turtle, sequence of xmlns: in XML and @context in JSON-LD.

Properties

Element Type uml:Property

Statements

☆  aPackage
has part ○  context
▣  CASCaRA Metamodel Diagram
shows ○  context

○  creator

The person committing the last change. Is often an e-mail address.

Properties

Element Type uml:Property

Statements

☆  anElement
has part ○  creator
▣  CASCaRA Metamodel Diagram
shows ○  creator

○  datatype

One of the xs: data types. Shall be anyURI.

Properties

Element Type uml:Property

Statements

☆  Enumeration
☆  Property
has part ○  datatype
▣  CASCaRA Metamodel Diagram
shows ○  datatype

○  defaultValue

Optional default value(s) in case a modelElement's property does not have an individual value. It must follow the definitions of the PropertyClass, of course.

Here, the attribute is named 'sh:defaultValue' for clarity and may just be called 'values' in an implementation, as all restrictions and operations of a property's values apply.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  defaultValue
▣  CASCaRA Metamodel Diagram
shows ○  defaultValue

○  definition

A multiLanguageText mandatory for all classes. Maps to skos:definition.

Properties

Element Type uml:Property

Statements

☆  Element
has part ○  definition
▣  CASCaRA Metamodel Diagram
shows ○  definition

☆  depicts

A Link class for use by View to enumerate eligible Entity and/or Relationship classes that can own a view (e.g. a state diagram describing the behavior of a component where the latter owns the depicting view).

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  depicts
☆  depicts enumeratedEndpoint Entity
View
enumeratedTargetLink ☆  depicts
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  depicts
☆  depicts specializes ☆  Link

○  description

A multiLanguageText. Maps to dcterms:description.

Details:

  • Here a multiplicity [0..1] is given, but in fact that depends on the itemType.
  • For all classes (Enumeration, Property, Link, Entity and Relationship), a title is mandatory.
  • In case of anEntity at least one of title or description is required, because it must be possible to represent a text paragraph as anEntity, which simply does not have a title.
  • In case of aRelationship both title and description are optional. If missing the title and/or description of the respective Relationship class applies. This avoids lots of repetition in real-world data-sets.

Properties

Element Type uml:Property

Statements

☆  Identifiable
has part ○  description
▣  CASCaRA Metamodel Diagram
shows ○  description

☆  Element

A technical super-class of Entity (class of entities) and Relationship (class of relationships).

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its technical sub-classes Entity and Relationship.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Element
☆  Link
enumeratedEndpoint ☆  Element
☆  Element enumeratedProperty ☆  Property
☆  Element has part ○  definition
○  icon
▣  CASCaRA Metamodel Diagram
shows ☆  Element
☆  Entity
☆  Relationship
specializes ☆  Element
☆  Element specializes ☆  Identifiable

☆  Entity

Entity is a class of model elements, such as a system component or a requirement. An Entity is an owl:Class.

Details:

  • Entity should have a title (name) and may have a description (definition).
  • Entity may specify (configure) zero to many classes of properties its instances may have.
  • The definitions of the entity together with those of the properties may be used to build user dialogs with input verification as well as to check its instances whether all property values have a correct type and value range as well as whether all required ones are present.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Entity
☆  Entity enumeratedTargetLink ☆  Link
☆  anEntity
☆  aPackage
hasClass ☆  Entity
▣  CASCaRA Metamodel Diagram
shows ☆  Entity
☆  Entity specializes ☆  Element
☆  Entity

Entity

The semantic foundation for all Entity (class) definitions. Is an owl:Class.

Properties

Element Type Class

Statements

☆  depicts
☆  lists
☆  shows
enumeratedEndpoint Entity
Entity enumeratedTargetLink ☆  linksEnumeration
▣  CASCaRA Semantic Infrastructure Diagram
shows Entity
Actor
Event
Feature
Model-Element
Organizer
Requirement
State
specializes Entity

○  enumeratedValue

Properties

Element Type uml:Property

Statements

☆  Enumeration
has part ○  enumeratedValue
▣  CASCaRA Metamodel Diagram
shows ○  enumeratedValue

☆  Enumeration

A class defining a set of enumerated values for use by any set of instances, where each value has an id and a value, either multiLanguageText in case of datatype xs:string or a simple value for all other datatypes.

A corresponding Link class must be defined with an enumeratedEndpoint to this enumeration class. An instance then has zero to many (0..n) aTargetLinks pointing to a value of the enumeration with hasTargetLink (not yet shown in the model diagram - this design is somewhat cumbersome and needs review). The required number of values is defined by minCount and maxCount of the Link class.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Enumeration
☆  Link
enumeratedEndpoint ☆  Enumeration
☆  Enumeration has part ○  datatype
○  enumeratedValue
▣  CASCaRA Metamodel Diagram
shows ☆  Enumeration
☆  Enumeration specializes ☆  Enumeration
☆  Identifiable

☆  Enumeration

The semantic foundation for all Enumeration (class) definitions. Is an owl:Class. Has a finite list of values for Properties.

Properties

Element Type cas:Enumeration

Statements

CASCaRA Semantic Infrastructure
contains ☆  Enumeration
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  Enumeration

Event

An 'Event' is a fundamental model element type representing a time reference, a change in condition/value or more generally a synchronization primitive.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Event
Event specializes Entity

Feature

A 'Feature' is an intentional distinguishing characteristic of a system, often a unique selling proposition.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Feature
Feature specializes Entity

○  icon

An icon defined with a class can be used to decorate the instances.

Example:

  • Folders as sub-class of Organizer and thus Entity may specify a UTF-8 character 🗀 for use by folders grouping certain model-elements.
  • A data-URL of an icon is also permitted.

Properties

Element Type uml:Property

Statements

☆  Element
has part ○  icon
▣  CASCaRA Metamodel Diagram
shows ○  icon

○  id

A globally unique identifier, either a fully qualified URI or a name with namespace standing for an URI, see aPackage context.

Properties

Element Type uml:Property

Statements

☆  Identifiable
has part ○  id
▣  CASCaRA Metamodel Diagram
shows ○  id

☆  Identifiable

All technical sub-classes of this class are identifiable, means they have an identifier, a title (name) and optionally a description.

Details:

  • The class is abstract.
  • All attributes are inherited by its subclasses.
  • All class level items in the upper part of the diagram are commonly released and made available with an URL path including the revision. Hence, multiple revisions of the class set may exist in parallel.
  • All instance level items in the lower part of the diagram may have individual revisions with their respective revision, modification date and creator. The prior revision identifier is memorized to support change history and branching. In case of a merge, there are two prior revisions.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Identifiable
☆  aPackage
graph ☆  Identifiable
☆  Identifiable has part ○  description
○  id
○  title
▣  CASCaRA Metamodel Diagram
shows ☆  Identifiable
☆  anElement
☆  Element
☆  Enumeration
☆  Link
☆  Property
specializes ☆  Identifiable
☆  Identifiable specializes ☆  Item

☆  Item

The technical super-class of all CASCaRA metamodel items specifying the type of item to allow for simple schema checking and transformation.

Details:

  • The class is abstract.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Item
☆  Item has part ○  itemType
▣  CASCaRA Metamodel Diagram
shows ☆  Item
☆  aLink
☆  aProperty
☆  Identifiable
specializes ☆  Item

○  itemType

Classifies classes and individuals (instances) in terms of this metamodel. It must be made explicit in all representations without native reasoner, such as in object-oriented programming, JSON, JSON-LD and XML. It can be omitted in RDF/OWL, as at the top of the class hierarchy there shall be a class corresponding to the metamodel itemType (see CASCARA Semantic Infrastructure and the itemType can be derived with a standard OWL reasoner.

Details:

  • Here it is modeled as a string, but in fact it is an enumerated value from all concrete metamodel items (represented as UML classes), thus [Enumeration, Link, Property, Entity, Relationship, aPackage, aSourceLink, aTargetLink, aProperty, anEntity, aRelationship].

Properties

Element Type uml:Property

Statements

☆  Item
has part ○  itemType
▣  CASCaRA Metamodel Diagram
shows ○  itemType

☆  Link

A Link is an identifiable link class. A Link is an owl:ObjectProperty.

Example:

  • An Organizer (semantic sub-class of Entity) may list Model-Elements (another semantic sub-class of Entity) to provide a document outline.
  • As such the Link class lists is specified as enumeratedTargetLink by Organizer.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Link
☆  Link enumeratedEndpoint ☆  Element
☆  Enumeration
☆  Relationship
enumeratedSourceLink ☆  Link
☆  Entity
☆  Relationship
enumeratedTargetLink ☆  Link
☆  Link has part ○  maxCount
○  minCount
☆  aLink
hasClass ☆  Link
▣  CASCaRA Metamodel Diagram
shows ☆  Link
☆  Link specializes ☆  Identifiable
☆  Link

☆  Link

The semantic foundation for all Link (class) definitions. Is an owl:ObjectProperty.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  Link
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  Link
☆  depicts
☆  linksEnumeration
☆  linksSource
☆  linksTarget
☆  lists
☆  shows
specializes ☆  Link

☆  linksEnumeration

A Link subclass for use by an Entity or Relationship to enumerate eligible Enumeration classes that can serve as a target.

Example:

  • A Requirement specifies a priority, where the priority values are defined in an Enumeration class and the link to use as linksEnumeration.
  • A meaningful link name such as 'has Priority' can be created through a subclass of linksEnumeration.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  linksEnumeration
Entity
Relationship
enumeratedTargetLink ☆  linksEnumeration
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  linksEnumeration
☆  linksEnumeration specializes ☆  Link

☆  linksSource

A Link subclass for use by Relationship to enumerate eligible Entity and/or Relationship classes that can serve as a source.

Example:

  • By further specializing this class, a speaking title can be given to a sourceLink, such as 'employee' in a 'worksFor' relationship being a specialization of Relationship.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  linksSource
Relationship
enumeratedSourceLink ☆  linksSource
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  linksSource
☆  linksSource specializes ☆  Link

☆  linksTarget

A Link subclass for use by Relationship to enumerate eligible Entity and/or Relationship classes that can serve as a target.

Example:

  • By further specializing this class, a meaningful title can be given to a sourceLink, such as 'employer' in a 'worksFor' relationship being a specialization of Relationship.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  linksTarget
Relationship
enumeratedTargetLink ☆  linksTarget
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  linksTarget
☆  linksTarget specializes ☆  Link

☆  lists

A Link class for use by Outline to enumerate eligible Entity and/or Relationship classes.

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  lists
☆  lists enumeratedEndpoint Entity
Relationship
Outline
enumeratedTargetLink ☆  lists
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  lists
☆  lists specializes ☆  Link

○  maxCount

An instance must have at most this number of properties of this class. Is unbounded (infinite) by default. This applies to both instances of a Property class and a Link class.

For example, if a property class 'Priority' has a maxCount=1 and a requirement class specifies an enumeratedProperty 'Priority', a requirement instance must have no more than one property of class Priority (with a value).

Properties

Element Type uml:Property

Statements

☆  Link
☆  Property
has part ○  maxCount
▣  CASCaRA Metamodel Diagram
shows ○  maxCount

○  maxInclusive

The maximum value a property of this type may have. May be applied only for numeric datatypes. It the intrinsic maximum value of the datatype by default.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  maxInclusive
▣  CASCaRA Metamodel Diagram
shows ○  maxInclusive

○  maxLength

Maximum length of a property value with datatype 'xs:string'. Is not allowed with any other datatype.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  maxLength
▣  CASCaRA Metamodel Diagram
shows ○  maxLength

○  minCount

An instance must have at least this number of properties of this class. Is '0' by default. This applies to both instances of a Property class and a Link class.

For example, if a property class 'Priority' has a minCount=1 and a requirement class specifies an enumeratedProperty 'Priority', a requirement instance must have at least one property of class Priority (with a value).

Properties

Element Type uml:Property

Statements

☆  Link
☆  Property
has part ○  minCount
▣  CASCaRA Metamodel Diagram
shows ○  minCount

○  minInclusive

The minimum value a property of this type may have. May be applied only for numeric datatypes. It the intrinsic minimum value of the datatype by default.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  minInclusive
▣  CASCaRA Metamodel Diagram
shows ○  minInclusive

○  modified

A ISO-8601 DateTime value recording the point in time of the last change.

Properties

Element Type uml:Property

Statements

☆  anElement
has part ○  modified
▣  CASCaRA Metamodel Diagram
shows ○  modified

Organizer

An Organizer is about presenting genuine a selection of model-elements for a given target group of users, for example a document outline, a table or a diagram.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Organizer
Package
Root
Table
Tree
View
specializes Organizer
Organizer specializes Entity

Outline

A tree (hierarchical arrangement) of references to graph nodes (vertices) to create a reading sequence. Graph nodes include Entity and Relationship. Outline is used at any level of the tree like a directory folder or universally for section, chapter and paragraph of a document.

Properties

Element Type Class

Statements

Outline enumeratedTargetLink ☆  lists
▣  CASCaRA Semantic Infrastructure Diagram
shows Outline
Outline specializes Tree

Package

A Package contains a given selection of CASCaRA items (classes and instances) for a given purpose, such as a component specification for review or in a customer-supplier relationship.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Package
Package specializes Organizer

○  pattern

A Regular Expression that must evaluate successfully with the property value. Can also be used to limit the number of decimals of a number, as there is no restriction like xs:fractionDigits in SHACL.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  pattern
▣  CASCaRA Metamodel Diagram
shows ○  pattern

○  priorRevision

Links to the previous revisions of an entity or relationship instance. It is a list with

  • zero elements, if it is the first revision,
  • one element for a subsequent revision or
  • two elements when two branches are merged.

Properties

Element Type uml:Property

Statements

☆  anElement
has part ○  priorRevision
▣  CASCaRA Metamodel Diagram
shows ○  priorRevision

☆  Property

Every class Entity and Relationship can have an individual set of configurable properties, each of which is uniquely defined by datatype and range. A Property is an owl:ObjectProperty when enumeratedValues are defined and is an owl:DatatypeProperty otherwise.

Example: A requirement might have a list with three properties, such as

  • Title with data type „String of max. length 96“,
  • Description with data type „String“ wíthout length restriction and
  • Priority with data type „String with a single choice of ['high', 'medium', 'low']“.

Details:

  • Property class must have a title and may have a description named.
  • Property class may define a minimum and maximum count of values.
  • Property class must define a datatype and may restrict its range by minInclusive, maxInclusive or or a pattern defined by Regular Expression.
  • Property class may define a set of enumerated values which must of course satisfy its own data type and range
  • A property class may define a default value which must of course satisfy its own data type and range.
  • Property class may be composed of multiple property classes to form a structured data type (xs:complexType). The structure must be a tree, thus without cyclic dependency.

Properties

Element Type Class

Statements

☆  Property composes ☆  Property
CASCaRA Metamodel
contains ☆  Property
☆  Element
enumeratedProperty ☆  Property
☆  Property has part ○  datatype
○  defaultValue
○  maxCount
○  maxInclusive
○  maxLength
○  minCount
○  minInclusive
○  pattern
○  unit
☆  aProperty
hasClass ☆  Property
▣  CASCaRA Metamodel Diagram
shows ☆  Property
☆  Property specializes ☆  Identifiable
☆  Property

☆  Property

The semantic foundation for all Property (class) definitions. Is an owl:DatatypeProperty.

Properties

Element Type cas:Property

Statements

CASCaRA Semantic Infrastructure
contains ☆  Property
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  Property

☆  Relationship

Relationship is a class of relationships between two entities to allow assertions such as 'a system component satisfies a requirement'. All relationships are bilateral and directed. This allows for statements according to propositional logic. They can be easily mapped to many technologies such as RDF or even ReqIF. Being reified, a Relationship is an owl:Class.

Details:

  • Relationship must have a title (name) and may have a description (definition).
  • Relationship lists zero to many property classes its instances may have.
  • Relationship may define (configure) entitiy classes or relationship classes, whose instances are eligible as source resp. target in a relationship. If none are defined, all entities and relationships are eligible.
  • Relationship is reified (as a rdfs:Resource in RDF), so that it can be a source or target of another Relationship - to make a statement on a statement.
  • The definitions of a relationship together with those of their properties may be used to build user dialogs with input verfication and to check its instances whether all properties have a correct type and value range as well as whether all required ones are present.

Properties

Element Type Class

Statements

CASCaRA Metamodel
contains ☆  Relationship
☆  Relationship enumeratedSourceLink ☆  Link
☆  Relationship enumeratedTargetLink ☆  Link
☆  aRelationship
hasClass ☆  Relationship
▣  CASCaRA Metamodel Diagram
shows ☆  Relationship
☆  Relationship specializes ☆  Element
☆  Relationship

Relationship

The semantic foundation for all Relationship (class) definitions. Is an owl:Class.

Properties

Element Type Class

Statements

☆  lists
enumeratedEndpoint Relationship
Relationship enumeratedSourceLink ☆  linksSource
Relationship enumeratedTargetLink ☆  linksEnumeration
☆  linksTarget
▣  CASCaRA Semantic Infrastructure Diagram
shows Relationship

Requirement

A 'Requirement' is a singular documented physical and functional need that a particular design, product or process must be able to perform. (source: Wikipedia)

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Requirement
Requirement specializes Entity

○  revision

A unique string identifying the revision of the entity or relationship instance.

Properties

Element Type uml:Property

Statements

☆  anElement
has part ○  revision
▣  CASCaRA Metamodel Diagram
shows ○  revision

Root

A root class serves to anchor organizer structures in a data package. While a graph has no start and no end, a root instance with a subordinated organizer structure offers a way to explore the graph for a given purpose.

Example:

  • A document outline anchored at a root element would define a document to read by auditors and perhaps another one for potential customers.
  • When querying all instances of class Root, a list of available documents is returned.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Root
Root specializes Organizer

☆  shows

A Link class for use by View to enumerate eligible Entity and/or Relationship classes that are visible on a view (e.g. model-diagram).

Properties

Element Type cas:Link

Statements

CASCaRA Semantic Infrastructure
contains ☆  shows
☆  shows enumeratedEndpoint Entity
View
enumeratedTargetLink ☆  shows
▣  CASCaRA Semantic Infrastructure Diagram
shows ☆  shows
☆  shows specializes ☆  Link

State

A 'State' is a fundamental model element type representing a passive entity, be it a value, a condition, an information storage or even a physical shape.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows State
State specializes Entity

Table

A specialized Organizer with elements (cells) arranged two-dimensionally in columns and rows. Any element SHALL contain a reference to any Entity or Relationship.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Table
Table specializes Organizer

○  title

A multiLanguageText. Maps to dcterms:title.

Details:

  • Here a multiplicity [0..1] is given, but in fact that depends on the itemType.
  • For all classes (Enumeration, Property, Link, Entity and Relationship), a title is mandatory.
  • In case of anEntity at least one of title or description is required, because it must be possible to represent a text paragraph as anEntity, which simply does not have a title.
  • In case of aRelationship both title and description are optional. If missing the title and/or description of the respective Relationship class applies. This avoids lots of repetition in real-world data-sets.

Properties

Element Type uml:Property

Statements

☆  Identifiable
has part ○  title
▣  CASCaRA Metamodel Diagram
shows ○  title

Tree

A specialized Organizer with elements (nodes) arranged in a strictly hierarchical manner. Any element SHALL contain a reference to any Entity or Relationship.

Properties

Element Type Class

Statements

▣  CASCaRA Semantic Infrastructure Diagram
shows Tree
Outline
specializes Tree
Tree specializes Organizer

○  unit

A unit as defined by the International System of Units (SI). A unit can only be defined for a numeric datatype. By default the property has no unit.

Properties

Element Type uml:Property

Statements

☆  Property
has part ○  unit
▣  CASCaRA Metamodel Diagram
shows ○  unit

○  value

The value of a property.

Details:

  • If the datatype of the property's class is string, the value is a language string consisting of value and IETF language tag ('multiLangueText').
  • Otherwise the value is a simple value.

Properties

Element Type uml:Property

Statements

☆  aProperty
has part ○  value
▣  CASCaRA Metamodel Diagram
shows ○  value

View

A specialized Organizer with elements displayed in two or three dimensions such as a model-diagram, 3D visualization or pie-chart. Any element SHOULD reference any instance of Entity or Relationship.

Properties

Element Type Class

Statements

View enumeratedTargetLink ☆  depicts
☆  shows
▣  CASCaRA Semantic Infrastructure Diagram
shows View
View specializes Organizer