CASCaRA Metamodel and Semantic Infrastructure

CASCaRA Metamodel and Semantic Infrastructure

This model is authored with NoMagic Cameo Systems Modeler using UML notation, then transformed to SpecIF via Cameo XMI file and finally transformed to HTML or DOCX.

Properties

Element Typeuml:Model

CASCaRA Metamodel

<h2>Design goals</h2>
  • Separated syntax and semantics: The metamodel governs the graph pattern independently of the ontology. Any software depends on the metamodel and doesn’t need change, when the ontology evolves over time.
  • Simple 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.
  • Federated data-spaces: The general use of URIs (or UUIDs wirh namespace) as identifier like RDF allows linked data to reside in multiple internet servers and still form a valid graph which can be seamlessly traversed and queried.

Properties

Element TypePackage

Statements

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

▣  CASCaRA Metamodel Diagram

The metamodel is a 'platform independent model' (PIM) 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.
  • aPackage is an instance of Entity and contains a subgraph of the global CASCaRA Graph; package instances can be nested. A package instance may have a set of aProperty corresponding with the Property of its class.
<h3>Note</h3>
  • &quot;Technical&quot; super-class and sub-class refer to the UML elements used in this metamodel by means of UML:Generalization.
  • &quot;Semantic&quot; 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.
<h2>Constraints</h2><h3>General</h3>
  • IDs are unique
  • namespace prefixes are defined in the context
<h3>Referential Integrity</h3>
  • Property.id is different from any of the native properties defined for all item types
  • Property.hasClass is owl:DatatypeProperty (schema)
  • Property.specializes is a Property
  • Property.datatype is a valid xs: datatype
  • Property.maxLength is &gt;0 and only specified, if datatype is xs:string
  • Property.pattern is a regular expression
  • Property.minInclusive is only specified, if datatype is a xs: number datatype
  • Property.maxInclusive is only specified, if datatype is a xs: number datatype
  • Property.minInclusive is smaller or equal Property.maxInclusive
  • Property datatype and range must be contained in those of the specialized Property (following the restrictions of OWL)
  • Property.defaultValue meets datatype and range
  • Property.composes entries are each pointing to a Property
  • Property.composes chain is a tree (without cyclic dependency)
  • Link.id is different from any of the native properties defined for all item types
  • Link.hasClass is owl:ObjectProperty (schema)
  • Link.specializes is a Link
  • Link.enumeratedEndpoint entries point to either 1 Enumeration, 1..n Entities or 1..n Relationships
  • Link.defaultValue is a valid Id-string (URI or UUID with namespace)
  • Link.enumeratedEndpoints must be contained in or be subClasses of those of the specialized Link (following the restrictions of OWL)
  • Enumeration.hasClass is owl:Class (schema)
  • Enumeration.specializes is an Enumeration
  • Enumeration.enumeratedValue comply with the datatype
  • Entity.hasClass is owl:Class (schema)
  • Entity.specializes is an Entity
  • Entity.enumeratedProperty entries are each pointing to a Property
  • Entity.enumeratedTargetLink entries are each pointing to a Link
  • Relationship.hasClass is owl:Class (schema)
  • Relationship.specializes is a Relationship
  • Relationship.enumeratedSourceLink has exactly one entry pointing to a Link
  • Relationship.enumeratedTargetLink has exactly one entry pointing to a Link
  • aProperty is contained in a parent aPackage, anEntity or aRelationship
  • aProperty.hasClass is a Property
  • aProperty.hasClass is contained in enumeratedProperty list of its parent's class (Enumeration, Entity or Relationship)
  • aProperty minCount and maxCount are met, language-aware in case of xs:string
  • aProperty.value is represented/interpreted as string regardless of the datatype
  • aProperty.value is a multilanguage object in case of xs:string, where the language tag is set if more than 1 language is provided
  • aProperty.value datatype and range are met
  • aProperty.composes entries are aProperty
  • aSourceLink is contained in a parent aRelationship
  • aSourceLink.hasClass is a Link
  • aSourceLink.hasClass is contained in enumeratedSourceLink list of its parent's class (Relationship)
  • aSourceLink.idRef points to an instance of the entries listed in its class' Link.enumeratedEndpoints
  • aSourceLink must specify identifier and revision of the endpoints, if its class has revisionAware set to true
  • aTargetLink is contained in a parent aPackage, anEntity or aRelationship
  • aTargetLink.hasClass is a Link
  • aTargetLink.idRef points either to an instance of the entries listed in its class' Link.enumeratedEndpoints or to an enumeratedValue of the listed Enumeration
  • aTargetLink.hasClass is contained in enumeratedTargetLink list of its parent's class (Entity or Relationship)
  • aTargetLink must specify identifier and revision of the endpoints, if its class has revisionAware set to true
  • anEntity.hasClass is an Entity
  • aRelationship.hasClass is a Relationship
  • aPackage.hasClass is an Entity
  • specializes chain is a tree (without cyclic dependency)
<h3>Limitations (to be discussed)</h3>
  • Enumerations cannot be contained in a composed Property
  • Links cannot be contained in a composed Property
  • enumeratedEndpoints of a given Link must be of the same item type (Enumeration, Entity or Relationship)
  • Access Permissions per user role are still missing. Role names and the way how to assign permissions per metamodel item shall be included in the standard, whereas the assignment of users to user roles is left to the implementations.

CASCaRA Metamodel Diagram.png

Properties

Element TypeDiagram
NotationUML Class Diagram

Statements

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

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Item
☆  Itemhas 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 Typeuml:Property

Statements

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

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Identifiable
☆  aPackage
graph☆  Identifiable
☆  Identifiablehas part○  description
○  id
○  title
▣  CASCaRA Metamodel Diagram
shows☆  Identifiable
☆  anElement
☆  Configurable
☆  Element
specializes☆  Identifiable
☆  Identifiablespecializes☆  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 Typeuml: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.
  • The same applies for aProperty, aSourceLink and aTargetLink; both title and description are optional.

Properties

Element Typeuml: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.
  • The same applies for aProperty, aSourceLink and aTargetLink; both title and description are optional.

Properties

Element Typeuml: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.
  • The globalTitle of the Elements is used to integrate the instances of a partial graphs to an overarching CASCaRA graph.

Properties

Element TypeClass

Statements

CASCaRA Metamodel
contains☆  Element
☆  Link
enumeratedEndpoint☆  Element
☆  ElementenumeratedProperty☆  Property
☆  Elementhas part○  definition
○  globalTitle
○  icon
▣  CASCaRA Metamodel Diagram
shows☆  Element
☆  Entity
☆  Enumeration
☆  Relationship
specializes☆  Element
☆  Elementspecializes☆  Identifiable

○  definition

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

Properties

Element Typeuml: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 Typeuml:Property

Statements

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

○  globalTitle

The title assigned by matching the title with the terms of the ontology by the 'globalize' operation.

Properties

Element Typeuml:Property

Statements

☆  Configurable
☆  Element
has part○  globalTitle
▣  CASCaRA Metamodel Diagram
shows○  globalTitle

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Enumeration
☆  Enumerationhas part○  datatype
○  enumeratedValue
▣  CASCaRA Metamodel Diagram
shows☆  Enumeration
☆  Enumerationspecializes☆  Element
☆  Enumeration

○  datatype

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

Properties

Element Typeuml:Property

Statements

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

○  enumeratedValue

A defined value of an Enumeration.

Details:

  • It must have the datatype specified by its parent.
  • If the datatype is string, the value is a language string consisting of value and IETF language tag ('multiLangueText').
  • Otherwise the value is a simple value.
  • Values of all datatypes are represented as a string in all data formats, even JSON and JSON-LD.

Properties

Element Typeuml:Property

Statements

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

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Entity
☆  EntityenumeratedTargetLink☆  Link
☆  anEntity
hasClass☆  Entity
▣  CASCaRA Metamodel Diagram
shows☆  Entity
☆  Entityspecializes☆  Element
☆  Entity

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Relationship
☆  RelationshipenumeratedSourceLink☆  Link
☆  RelationshipenumeratedTargetLink☆  Link
☆  Relationshiphas part○  globalReversed
☆  aRelationship
hasClass☆  Relationship
▣  CASCaRA Metamodel Diagram
shows☆  Relationship
☆  Relationshipspecializes☆  Element
☆  Relationship

○  globalReversed

If set, the instances of the Relationship are interpreted in reverse direction when evaluated in the global graph.

Example:

  • If the ontology defines a term 'satisfies', an incoming relationship named 'satisfied-by' is reversed and the globalTitle is set to 'satisfies' and globalReversed is set to 'true'.

Properties

Element Typeuml:Property

Statements

☆  Relationship
has part○  globalReversed
▣  CASCaRA Metamodel Diagram
shows○  globalReversed

☆  Configurable

Besides native properties such as title and description, Elements can have configurable properties and links. Those configurable properties and links support a dynamic data model, so that the ontology can evolve over time without software change. Sufficient detail such as data type and range can be provided to build dynamic forms, for example. It is in fact the core feature to separate CASCaRA syntax and semantics.

Details:

  • This class is abstract

Properties

Element TypeClass

Statements

CASCaRA Metamodel
contains☆  Configurable
☆  Configurablehas part○  defaultValue
○  globalTitle
○  maxCount
○  minCount
○  readOnly
▣  CASCaRA Metamodel Diagram
shows☆  Configurable
☆  Link
☆  Property
specializes☆  Configurable
☆  Configurablespecializes☆  Identifiable

○  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 Typeuml:Property

Statements

☆  Configurable
☆  Link
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 Typeuml:Property

Statements

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

○  defaultValue

Optional default value(s) in case a modelElement's property does not have an individual value when instantiated. It may be changed later on and must follow the definitions of the PropertyClass resp. LinkClass at all times, of course.

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

Properties

Element Typeuml:Property

Statements

☆  Configurable
☆  Link
has part○  defaultValue
▣  CASCaRA Metamodel Diagram
shows○  defaultValue

○  readOnly

The link value of an instance may not be updated or deleted, once assigned.

Properties

Element Typeuml:Property

Statements

☆  Configurable
☆  Link
has part○  readOnly
▣  CASCaRA Metamodel Diagram
shows○  readOnly

○  globalTitle

The title assigned by matching the title with the terms of the ontology by the 'globalize' operation.

Properties

Element Typeuml:Property

Statements

☆  Configurable
☆  Element
has part○  globalTitle
▣  CASCaRA Metamodel Diagram
shows○  globalTitle

☆  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 TypeClass

Statements

☆  Propertycomposes☆  Property
CASCaRA Metamodel
contains☆  Property
☆  Element
enumeratedProperty☆  Property
☆  Propertyhas part○  datatype
○  maxInclusive
○  maxLength
○  minInclusive
○  pattern
☆  aProperty
hasClass☆  Property
▣  CASCaRA Metamodel Diagram
shows☆  Property
☆  Propertyspecializes☆  Configurable
☆  Property

○  datatype

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

Properties

Element Typeuml:Property

Statements

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

○  maxLength

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

Properties

Element Typeuml:Property

Statements

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

○  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 Typeuml: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 Typeuml:Property

Statements

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

○  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 Typeuml:Property

Statements

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

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Link
☆  LinkenumeratedEndpoint☆  Element
☆  Relationship
enumeratedSourceLink☆  Link
☆  Entity
☆  Relationship
enumeratedTargetLink☆  Link
☆  Linkhas part○  defaultValue
○  maxCount
○  minCount
○  readOnly
○  revisionAware
☆  aLink
hasClass☆  Link
▣  CASCaRA Metamodel Diagram
shows☆  Link
☆  Linkspecializes☆  Configurable
☆  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 Typeuml:Property

Statements

☆  Configurable
☆  Link
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 Typeuml:Property

Statements

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

○  revisionAware

Indicates whether an instance of this class points to a specific or any revision of the specified endpoint. In case of the former, the key of such a link instance must contain both identifier and revision. Default is false, so the relationship points to any revision of the endpoint; in that case the key only contains just the identifier.

Examples:

  • A 'lists' link of an outline shall continue to apply to an endpoint, even if updated. So revisionAware is omitted or set to 'false'.
  • A 'verifies' relation shall apply between specific revisions of a test-case and a requirement. So the classes of both aSourceLink and aTargetLink set revisionAware to 'true'. If the requirement is updated, it does not have a 'verifies' link, until explicitly set after repeating the test-case.
  • Of course, only one of the link classes of a Relationship class can be 'revisionAware'.

Properties

Element Typeuml:Property

Statements

☆  Link
has part○  revisionAware
▣  CASCaRA Metamodel Diagram
shows○  revisionAware

○  defaultValue

Optional default value(s) in case a modelElement's property does not have an individual value when instantiated. It may be changed later on and must follow the definitions of the PropertyClass resp. LinkClass at all times, of course.

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

Properties

Element Typeuml:Property

Statements

☆  Configurable
☆  Link
has part○  defaultValue
▣  CASCaRA Metamodel Diagram
shows○  defaultValue

○  readOnly

The link value of an instance may not be updated or deleted, once assigned.

Properties

Element Typeuml:Property

Statements

☆  Configurable
☆  Link
has part○  readOnly
▣  CASCaRA Metamodel Diagram
shows○  readOnly

☆  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).
  • aPackage can be nested.
  • Additional properties such as license, contributor or import nested packages are enumerated in the class of Package.

Properties

Element TypeClass

Statements

☆  aPackagecomposes☆  aPackage
CASCaRA Metamodel
contains☆  aPackage
☆  aPackagegraph☆  Identifiable
☆  aPackagehas part○  context
▣  CASCaRA Metamodel Diagram
shows☆  aPackage
☆  aPackagespecializes☆  anEntity

○  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 Typeuml:Property

Statements

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

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  anElement
☆  anElementhas part○  creator
○  modified
○  priorRevision
○  revision
☆  aLink
hasEndpoint☆  anElement
☆  anElementhasProperty☆  aProperty
▣  CASCaRA Metamodel Diagram
shows☆  anElement
☆  anEntity
☆  aRelationship
specializes☆  anElement
☆  anElementspecializes☆  Identifiable

○  modified

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

Properties

Element Typeuml: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 Typeuml: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 Typeuml: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 Typeuml:Property

Statements

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

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  anEntity
☆  anEntityhasClass☆  Entity
☆  anEntityhasTargetLink☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows☆  anEntity
☆  aPackage
specializes☆  anEntity
☆  anEntityspecializes☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  aRelationship
☆  aRelationshiphasClass☆  Relationship
☆  aRelationshiphasSourceLink☆  aSourceLink
☆  aRelationshiphasTargetLink☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows☆  aRelationship
☆  aRelationshipspecializes☆  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 TypeClass

Statements

☆  aPropertycomposes☆  aProperty
CASCaRA Metamodel
contains☆  aProperty
☆  aPropertyhas part○  value
☆  aPropertyhasClass☆  Property
☆  anElement
hasProperty☆  aProperty
▣  CASCaRA Metamodel Diagram
shows☆  aProperty
☆  aPropertyspecializes☆  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.
  • Values of all datatypes are represented as a string in all data formats, even JSON and JSON-LD.

Properties

Element Typeuml:Property

Statements

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

☆  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.
  • If the class is set to versionAware, all pointers to an endpoint must contain both identifier and revision.

Properties

Element TypeClass

Statements

CASCaRA Metamodel
contains☆  aLink
☆  aLinkhasClass☆  Link
☆  aLinkhasEndpoint☆  anElement
▣  CASCaRA Metamodel Diagram
shows☆  aLink
☆  aSourceLink
☆  aTargetLink
specializes☆  aLink
☆  aLinkspecializes☆  Item

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  aSourceLink
☆  aRelationship
hasSourceLink☆  aSourceLink
▣  CASCaRA Metamodel Diagram
shows☆  aSourceLink
☆  aSourceLinkspecializes☆  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 TypeClass

Statements

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

CASCaRA Semantic Infrastructure

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 and add semantic precision through the semantic infrastructure.

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. Thus, 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.

Thus, an ontology for use with the CASCaRA Metamodel SHOULD sub-class the items of the CASCaRA Semantic Infrastructure.

Properties

Element TypePackage

Statements

CASCaRA Semantic Infrastructurecontains☆  depicts
☆  Enumeration
☆  hasQuantityValue
☆  Link
☆  linksEnumeratedValue
☆  linksSource
☆  linksTarget
☆  lists
☆  Property
☆  shows
▣  CASCaRA Semantic Infrastructure Diagram

▣  CASCaRA Semantic Infrastructure Diagram

The diagram illustrates the concept, but is by no means complete. Consult the data in CASCaRA JSON-LD, XML or TTL format to get a complete representation.

CASCaRA Semantic Infrastructure Diagram.png

Properties

Element TypeDiagram
NotationUML Class Diagram

Statements

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

Entity

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

Properties

Element TypeClass

Statements

☆  depicts
☆  lists
☆  shows
enumeratedEndpointEntity
EntityenumeratedTargetLink☆  linksEnumeratedValue
▣  CASCaRA Semantic Infrastructure Diagram
showsEntity
Actor
Collection
Event
Feature
Organizer
QuantityValue
Requirement
State
specializesEntity

Relationship

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

Properties

Element TypeClass

Statements

☆  lists
enumeratedEndpointRelationship
RelationshipenumeratedSourceLink☆  linksSource
RelationshipenumeratedTargetLink☆  linksEnumeratedValue
☆  linksTarget
▣  CASCaRA Semantic Infrastructure Diagram
showsRelationship

☆  Property

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

Properties

Element Typecas:Property

Statements

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

☆  Link

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

Properties

Element Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  Link
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  Link
☆  depicts
☆  hasQuantityValue
☆  linksEnumeratedValue
☆  linksSource
☆  linksTarget
☆  lists
☆  shows
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 TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
▣  Entity with Property
▣  Very Simple Model with Requirements
showsOrganizer
Package
Root
Table
Tree
View
specializesOrganizer
OrganizerspecializesEntity

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 TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsTree
Outline
specializesTree
TreespecializesOrganizer

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 TypeClass

Statements

OutlineenumeratedTargetLink☆  lists
☆  Glossary
☆  Introduction
☆  Requirements
☆  System Diagrams
hasClassOutline
▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsOutline
OutlinespecializesTree

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 TypeClass

Statements

ViewenumeratedProperty☆  Category
ViewenumeratedTargetLink☆  depicts
☆  shows
☆  FiCo Architecture Diagram
hasClassView
▣  CASCaRA Semantic Infrastructure Diagram
▣  Entity with Property
▣  Very Simple Model with Requirements
showsView
ViewspecializesOrganizer

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 TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
showsTable
TablespecializesOrganizer

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 TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
showsPackage
PackagespecializesOrganizer

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 TypeClass

Statements

☆  Hierarchy Root
hasClassRoot
▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsRoot
RootspecializesOrganizer

Collection

A 'Collection' is a logical (often conceptual) group of resources linked with a relationship (tbd). It corresponds to a 'Group' in BPMN or a 'Grouping' in ArchiMate.

  • BPMN: An arbitrary set of objects can be defined as a Group to show that they logically belong together. Source: BPMN Tutorial.
  • ArchiMate: The grouping element aggregates or composes concepts that belong together based on some common characteristic. Source: ArchiMate® 3.2 Specification.

Properties

Element TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
showsCollection
CollectionspecializesEntity

☆  Enumeration

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

Properties

Element Typecas:Enumeration

Statements

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

Feature

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

Properties

Element TypeClass

Statements

FeatureenumeratedTargetLink☆  hasQuantityValue
▣  CASCaRA Semantic Infrastructure Diagram
showsFeature
FeaturespecializesEntity

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 TypeClass

Statements

☆  satisfies-toTarget
enumeratedEndpointRequirement
RequirementenumeratedTargetLink☆  hasQuantityValue
☆  Priority
☆  Consistency
☆  Data Volume
☆  Response Time
hasClassRequirement
▣  CASCaRA Semantic Infrastructure Diagram
▣  Entity with Property having Enumerated Values
▣  Very Simple Model with Requirements
showsRequirement
RequirementspecializesEntity

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 TypeClass

Statements

ActorenumeratedTargetLink☆  hasQuantityValue
☆  FiCo Application
hasClassActor
▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsActor
ActorspecializesEntity

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 TypeClass

Statements

StateenumeratedTargetLink☆  hasQuantityValue
☆  FiCo Data
hasClassState
▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsState
StatespecializesEntity

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 TypeClass

Statements

EventenumeratedTargetLink☆  hasQuantityValue
▣  CASCaRA Semantic Infrastructure Diagram
showsEvent
EventspecializesEntity

QuantityValue

A dimensioned quantity with two properties, a 'quantity' (a numeric value) and a 'unit' of measurement.

Properties

Element TypeClass

Statements

☆  hasQuantityValue
enumeratedEndpointQuantityValue
▣  CASCaRA Semantic Infrastructure Diagram
showsQuantityValue
QuantityValuespecializesEntity

☆  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 Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  shows
☆  showsenumeratedEndpointEntity
View
enumeratedTargetLink☆  shows
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  shows
☆  showsspecializes☆  Link

☆  lists

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

Properties

Element Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  lists
☆  listsenumeratedEndpointEntity
Relationship
Outline
enumeratedTargetLink☆  lists
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  lists
☆  listsspecializes☆  Link

☆  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 Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  depicts
☆  depictsenumeratedEndpointEntity
View
enumeratedTargetLink☆  depicts
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  depicts
☆  depictsspecializes☆  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 Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  linksSource
Relationship
enumeratedSourceLink☆  linksSource
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  linksSource
☆  linksSourcespecializes☆  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 Typecas:Link

Statements

CASCaRA Example
CASCaRA Semantic Infrastructure
contains☆  linksTarget
Relationship
enumeratedTargetLink☆  linksTarget
▣  CASCaRA Semantic Infrastructure Diagram
▣  Entity with Property having Enumerated Values
shows☆  linksTarget
☆  Priority
specializes☆  linksTarget
☆  linksTargetspecializes☆  Link

☆  linksEnumeratedValue

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 Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  linksEnumeratedValue
Entity
Relationship
enumeratedTargetLink☆  linksEnumeratedValue
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  linksEnumeratedValue
☆  linksEnumeratedValuespecializes☆  Link

☆  hasQuantityValue

Properties

Element Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  hasQuantityValue
☆  hasQuantityValueenumeratedEndpointQuantityValue
Actor
Event
Feature
Requirement
State
enumeratedTargetLink☆  hasQuantityValue
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  hasQuantityValue
☆  hasQuantityValuespecializes☆  Link

CASCaRA Schemata

Schemata are (resp. will be) made available for the native CASCaRA formats; they are 'Platform Specific Models' (PSM) in OMG terms:

  • JSON-Schema for CASCaRA JSON-LD.
  • XML-Schema (XSD) for CASCaRA XML (in preparation)
  • RDF (in preparation, while it is not yet clear how to formulate the CASCaRA metamodel and its constraints in SPARQL, SHACL or other).

Note: Schemata can only check the format of a data-set. Constraints apply in addition. Please refer to the Metamodel chapter above.

Properties

Element TypePackage

CASCaRA Example

A simple, yet representative CASCaRA example is presented. This chapter decribes it, whereas the data is listed in the four native CASCaRA formats:

Properties

Element TypePackage

Statements

CASCaRA Examplecontains☆  Category
☆  Consistency
☆  Data Volume
☆  FiCo Application
☆  FiCo Architecture Diagram
☆  FiCo Data
☆  FMC Block Diagram
☆  Glossary
☆  Hierarchy Root
☆  Introduction
☆  linksTarget
☆  Priority
☆  Priority-Value
☆  priorityHigh
☆  Requirements
☆  Response Time
☆  satisfies-toTarget
☆  System Diagrams
☆  unnamed uml:Class
☆  unnamed uml:Class
▣  Entity with Property
▣  Entity with Property having Enumerated Values
▣  Very Simple Model with Requirements

▣  Very Simple Model with Requirements

A sample product information graph consisting of

  • two system model entities FiCo Application and FiCo Data, where FiCo stands for 'Finance and Controlling';
  • two reified system model relationships as instance of Writes and Reads;
  • three requirements Response Time, Data Volume and Consistency;
  • three reified relationships as instance of Satisfies;
  • an Enumeration with title 'Priority-Value' used by the class Requirement and its instances - which is not shown on the diagram;
  • none of the properties, classes as well as instances, aren't shown on the diagram, either.
  • a diagram showing the two model entities and two model relationships;
  • a Hierarchy Root as origin of an outline consisting of four folders Introduction, Requirements, System Diagrams and Glossary;
  • Folders and diagrams are sub-classes of Organizer, as they are not part of the model itself, but are creating views of that model for a specific target audience and purpose.

Notes:

  • This graph uses classes of the CASCaRA Semantic Infrastructure (visible at the left side of the diagram), but for reasons of simplicity not any classes of an ontology. However, any ontology class would be included as subclasses of the Semantic Infrastructure and the product information as instances of those.

Legend:

  • The classes of the CASCaRA Semantic Infrastructure are colored in hues of orange.
  • The product information, thus the instances constituting the payload are colored in hues of yellow.
  • The boxes represent instances of the CASCaRA Metamodel. where the item type is represented as a stereotype.
  • The connectors between the boxes named 'hasClass' are Metamodel associations.
  • The other connectors in the diagram above the dashed line are a simplified notation as explained below the dashed line.

Very Simple Model with Requirements.png

Properties

Element TypeDiagram
NotationUML Class Diagram

Statements

CASCaRA Example
contains▣  Very Simple Model with Requirements
▣  Very Simple Model with Requirementsshows☆  Consistency
☆  Data Volume
☆  FiCo Application
☆  FiCo Architecture Diagram
☆  FiCo Data
☆  Glossary
☆  Hierarchy Root
☆  Introduction
☆  Requirements
☆  Response Time
☆  satisfies-toTarget
☆  System Diagrams
☆  unnamed uml:Class
☆  unnamed uml:Class
Actor
Organizer
Outline
Reads
Requirement
Root
Satisfies
State
Tree
View
Writes

▣  Entity with Property

The diagram shows anEntity of class 'View' being a subClass of 'Organizer'. The view 'FiCo Architecture Diagram' has aProperty of class 'Category' with value 'FMC Block Diagram'. See the textual notation in Appendix A or in the GitHub Repository 'CASCaDE Verification and Validation'.

Entity with Property.png

Properties

Element TypeDiagram
NotationUML Class Diagram

Statements

CASCaRA Example
contains▣  Entity with Property
▣  Entity with Propertyshows☆  Category
☆  FiCo Architecture Diagram
☆  FMC Block Diagram
Organizer
View

▣  Entity with Property having Enumerated Values

The diagram shows anEntity of class 'Requirement'. The requirement 'Data Volume' has a property with an enumerated value 'priorityHigh'. See the textual notation in Appendix A or in the GitHub Repository 'CASCaDE Verification and Validation'.

Entity with Property having Enumerated Values.png

Properties

Element TypeDiagram
NotationUML Class Diagram

Statements

CASCaRA Example
contains▣  Entity with Property having Enumerated Values
▣  Entity with Property having Enumerated Valuesshows☆  Data Volume
☆  linksTarget
☆  Priority
☆  Priority-Value
☆  priorityHigh
☆  unnamed uml:Class
Requirement

☆  System Diagrams

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  System Diagrams
☆  System DiagramshasClassOutline
☆  Hierarchy Root
lists☆  System Diagrams
☆  System Diagramslists☆  FiCo Architecture Diagram
▣  Very Simple Model with Requirements
shows☆  System Diagrams

☆  FiCo Architecture Diagram

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  FiCo Architecture Diagram
☆  FiCo Architecture DiagramhasClassView
☆  FiCo Architecture DiagramhasProperty☆  FMC Block Diagram
☆  System Diagrams
lists☆  FiCo Architecture Diagram
▣  Entity with Property
▣  Very Simple Model with Requirements
shows☆  FiCo Architecture Diagram
☆  FiCo Architecture Diagramshows☆  FiCo Application
☆  FiCo Data
☆  unnamed uml:Class

☆  FiCo Application

IT-Application for Finance and Controlling.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  FiCo Application
☆  FiCo ApplicationhasClassActor
☆  Glossary
lists☆  FiCo Application
☆  unnamed uml:Class
reads-toSource☆  FiCo Application
☆  unnamed uml:Class
satisfies-toSource☆  FiCo Application
☆  FiCo Architecture Diagram
▣  Very Simple Model with Requirements
shows☆  FiCo Application
☆  unnamed uml:Class
writes-toSource☆  FiCo Application

☆  FiCo Data

Finance and Controlling Data, such as cost-units per project with budget, accrued cost etc.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  FiCo Data
☆  FiCo DatahasClassState
☆  Glossary
lists☆  FiCo Data
☆  unnamed uml:Class
reads-toTarget☆  FiCo Data
☆  unnamed uml:Class
satisfies-toSource☆  FiCo Data
☆  FiCo Architecture Diagram
▣  Very Simple Model with Requirements
shows☆  FiCo Data
☆  unnamed uml:Class
writes-toTarget☆  FiCo Data

☆  Requirements

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Requirements
☆  RequirementshasClassOutline
☆  Hierarchy Root
lists☆  Requirements
☆  Requirementslists☆  Consistency
☆  Data Volume
☆  Response Time
▣  Very Simple Model with Requirements
shows☆  Requirements

☆  Data Volume

The data store MUST support a total volume up to 850 GB.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Data Volume
☆  Data VolumehasClassRequirement
☆  Data VolumehasTargetLink☆  unnamed uml:Class
☆  Requirements
lists☆  Data Volume
☆  unnamed uml:Class
satisfies-toTarget☆  Data Volume
▣  Entity with Property having Enumerated Values
▣  Very Simple Model with Requirements
shows☆  Data Volume

☆  Consistency

The data store MUST be consistent at all times.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Consistency
☆  ConsistencyhasClassRequirement
☆  Requirements
lists☆  Consistency
☆  unnamed uml:Class
satisfies-toTarget☆  Consistency
▣  Very Simple Model with Requirements
shows☆  Consistency

☆  Response Time

The system SHOULD respond on user queries within 300 ms.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Response Time
☆  Response TimehasClassRequirement
☆  unnamed uml:Class
hasEndpoint☆  Response Time
☆  Requirements
lists☆  Response Time
☆  unnamed uml:Class
satisfies-toTarget☆  Response Time
▣  Very Simple Model with Requirements
shows☆  Response Time

☆  unnamed uml:Class

Properties

Element Typecas:aRelationship

Statements

CASCaRA Example
contains☆  unnamed uml:Class
☆  unnamed uml:ClasshasClassReads
Satisfies
Writes
☆  unnamed uml:ClasshasTargetLink☆  unnamed uml:Class
☆  unnamed uml:Classreads-toSource☆  FiCo Application
☆  unnamed uml:Classreads-toTarget☆  FiCo Data
☆  unnamed uml:Classsatisfies-toSource☆  FiCo Application
☆  FiCo Data
☆  unnamed uml:Classsatisfies-toTarget☆  Consistency
☆  Data Volume
☆  Response Time
☆  FiCo Architecture Diagram
▣  Very Simple Model with Requirements
shows☆  unnamed uml:Class
☆  unnamed uml:Classwrites-toSource☆  FiCo Application
☆  unnamed uml:Classwrites-toTarget☆  FiCo Data

☆  unnamed uml:Class

Properties

Element Typecas:aTargetLink

Statements

CASCaRA Example
contains☆  unnamed uml:Class
☆  unnamed uml:ClasshasClass☆  Priority
☆  satisfies-toTarget
☆  unnamed uml:ClasshasEndpoint☆  priorityHigh
☆  Response Time
☆  Data Volume
☆  unnamed uml:Class
hasTargetLink☆  unnamed uml:Class
▣  Entity with Property having Enumerated Values
▣  Very Simple Model with Requirements
shows☆  unnamed uml:Class

☆  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 Typecas:Link

Statements

CASCaRA Example
CASCaRA Semantic Infrastructure
contains☆  linksTarget
Relationship
enumeratedTargetLink☆  linksTarget
▣  CASCaRA Semantic Infrastructure Diagram
▣  Entity with Property having Enumerated Values
shows☆  linksTarget
☆  Priority
specializes☆  linksTarget
☆  linksTargetspecializes☆  Link

Satisfies

Properties

Element TypeClass

Statements

SatisfiesenumeratedTargetLink☆  satisfies-toTarget
☆  unnamed uml:Class
hasClassSatisfies
▣  Very Simple Model with Requirements
showsSatisfies

☆  satisfies-toTarget

Properties

Element Typecas:Link

Statements

CASCaRA Example
contains☆  satisfies-toTarget
☆  satisfies-toTargetenumeratedEndpointRequirement
Satisfies
enumeratedTargetLink☆  satisfies-toTarget
☆  unnamed uml:Class
hasClass☆  satisfies-toTarget
▣  Very Simple Model with Requirements
shows☆  satisfies-toTarget

Writes

Properties

Element TypeClass

Statements

☆  unnamed uml:Class
hasClassWrites
▣  Very Simple Model with Requirements
showsWrites

Reads

Properties

Element TypeClass

Statements

☆  unnamed uml:Class
hasClassReads
▣  Very Simple Model with Requirements
showsReads

☆  Hierarchy Root

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Hierarchy Root
☆  Hierarchy RoothasClassRoot
☆  Hierarchy Rootlists☆  Glossary
☆  Introduction
☆  Requirements
☆  System Diagrams
▣  Very Simple Model with Requirements
shows☆  Hierarchy Root

☆  Introduction

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Introduction
☆  IntroductionhasClassOutline
☆  Hierarchy Root
lists☆  Introduction
▣  Very Simple Model with Requirements
shows☆  Introduction

☆  Glossary

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Glossary
☆  GlossaryhasClassOutline
☆  Hierarchy Root
lists☆  Glossary
☆  Glossarylists☆  FiCo Application
☆  FiCo Data
▣  Very Simple Model with Requirements
shows☆  Glossary

☆  Category

Properties

Element Typecas:Property

Statements

CASCaRA Example
contains☆  Category
View
enumeratedProperty☆  Category
☆  FMC Block Diagram
hasClass☆  Category
▣  Entity with Property
shows☆  Category

☆  FMC Block Diagram

Properties

Element Typecas:aProperty

Statements

CASCaRA Example
contains☆  FMC Block Diagram
☆  FMC Block DiagramhasClass☆  Category
☆  FiCo Architecture Diagram
hasProperty☆  FMC Block Diagram
▣  Entity with Property
shows☆  FMC Block Diagram

☆  Priority-Value

Properties

Element Typecas:Enumeration

Statements

CASCaRA Example
contains☆  Priority-Value
☆  Priority
enumeratedEndpoint☆  Priority-Value
☆  priorityHigh
hasClass☆  Priority-Value
▣  Entity with Property having Enumerated Values
shows☆  Priority-Value

☆  priorityHigh

Properties

Element TypeClass

Statements

CASCaRA Example
contains☆  priorityHigh
☆  priorityHighhasClass☆  Priority-Value
☆  unnamed uml:Class
hasEndpoint☆  priorityHigh
▣  Entity with Property having Enumerated Values
shows☆  priorityHigh

☆  Priority

Properties

Element Typecas:Link

Statements

CASCaRA Example
contains☆  Priority
☆  PriorityenumeratedEndpoint☆  Priority-Value
Requirement
enumeratedTargetLink☆  Priority
☆  unnamed uml:Class
hasClass☆  Priority
▣  Entity with Property having Enumerated Values
shows☆  Priority
☆  Priorityspecializes☆  linksTarget

Model Elements (Glossary)

Properties

Element TypeModel 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 TypeClass

Statements

ActorenumeratedTargetLink☆  hasQuantityValue
☆  FiCo Application
hasClassActor
▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsActor
ActorspecializesEntity

☆  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.
  • If the class is set to versionAware, all pointers to an endpoint must contain both identifier and revision.

Properties

Element TypeClass

Statements

CASCaRA Metamodel
contains☆  aLink
☆  aLinkhasClass☆  Link
☆  aLinkhasEndpoint☆  anElement
▣  CASCaRA Metamodel Diagram
shows☆  aLink
☆  aSourceLink
☆  aTargetLink
specializes☆  aLink
☆  aLinkspecializes☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  anElement
☆  anElementhas part○  creator
○  modified
○  priorRevision
○  revision
☆  aLink
hasEndpoint☆  anElement
☆  anElementhasProperty☆  aProperty
▣  CASCaRA Metamodel Diagram
shows☆  anElement
☆  anEntity
☆  aRelationship
specializes☆  anElement
☆  anElementspecializes☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  anEntity
☆  anEntityhasClass☆  Entity
☆  anEntityhasTargetLink☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows☆  anEntity
☆  aPackage
specializes☆  anEntity
☆  anEntityspecializes☆  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).
  • aPackage can be nested.
  • Additional properties such as license, contributor or import nested packages are enumerated in the class of Package.

Properties

Element TypeClass

Statements

☆  aPackagecomposes☆  aPackage
CASCaRA Metamodel
contains☆  aPackage
☆  aPackagegraph☆  Identifiable
☆  aPackagehas part○  context
▣  CASCaRA Metamodel Diagram
shows☆  aPackage
☆  aPackagespecializes☆  anEntity

☆  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 TypeClass

Statements

☆  aPropertycomposes☆  aProperty
CASCaRA Metamodel
contains☆  aProperty
☆  aPropertyhas part○  value
☆  aPropertyhasClass☆  Property
☆  anElement
hasProperty☆  aProperty
▣  CASCaRA Metamodel Diagram
shows☆  aProperty
☆  aPropertyspecializes☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  aRelationship
☆  aRelationshiphasClass☆  Relationship
☆  aRelationshiphasSourceLink☆  aSourceLink
☆  aRelationshiphasTargetLink☆  aTargetLink
▣  CASCaRA Metamodel Diagram
shows☆  aRelationship
☆  aRelationshipspecializes☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  aSourceLink
☆  aRelationship
hasSourceLink☆  aSourceLink
▣  CASCaRA Metamodel Diagram
shows☆  aSourceLink
☆  aSourceLinkspecializes☆  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 TypeClass

Statements

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

☆  Category

Properties

Element Typecas:Property

Statements

CASCaRA Example
contains☆  Category
View
enumeratedProperty☆  Category
☆  FMC Block Diagram
hasClass☆  Category
▣  Entity with Property
shows☆  Category

Collection

A 'Collection' is a logical (often conceptual) group of resources linked with a relationship (tbd). It corresponds to a 'Group' in BPMN or a 'Grouping' in ArchiMate.

  • BPMN: An arbitrary set of objects can be defined as a Group to show that they logically belong together. Source: BPMN Tutorial.
  • ArchiMate: The grouping element aggregates or composes concepts that belong together based on some common characteristic. Source: ArchiMate® 3.2 Specification.

Properties

Element TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
showsCollection
CollectionspecializesEntity

☆  Configurable

Besides native properties such as title and description, Elements can have configurable properties and links. Those configurable properties and links support a dynamic data model, so that the ontology can evolve over time without software change. Sufficient detail such as data type and range can be provided to build dynamic forms, for example. It is in fact the core feature to separate CASCaRA syntax and semantics.

Details:

  • This class is abstract

Properties

Element TypeClass

Statements

CASCaRA Metamodel
contains☆  Configurable
☆  Configurablehas part○  defaultValue
○  globalTitle
○  maxCount
○  minCount
○  readOnly
▣  CASCaRA Metamodel Diagram
shows☆  Configurable
☆  Link
☆  Property
specializes☆  Configurable
☆  Configurablespecializes☆  Identifiable

☆  Consistency

The data store MUST be consistent at all times.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Consistency
☆  ConsistencyhasClassRequirement
☆  Requirements
lists☆  Consistency
☆  unnamed uml:Class
satisfies-toTarget☆  Consistency
▣  Very Simple Model with Requirements
shows☆  Consistency

○  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 Typeuml: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 Typeuml:Property

Statements

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

☆  Data Volume

The data store MUST support a total volume up to 850 GB.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Data Volume
☆  Data VolumehasClassRequirement
☆  Data VolumehasTargetLink☆  unnamed uml:Class
☆  Requirements
lists☆  Data Volume
☆  unnamed uml:Class
satisfies-toTarget☆  Data Volume
▣  Entity with Property having Enumerated Values
▣  Very Simple Model with Requirements
shows☆  Data Volume

○  datatype

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

Properties

Element Typeuml: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 when instantiated. It may be changed later on and must follow the definitions of the PropertyClass resp. LinkClass at all times, of course.

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

Properties

Element Typeuml:Property

Statements

☆  Configurable
☆  Link
has part○  defaultValue
▣  CASCaRA Metamodel Diagram
shows○  defaultValue

○  definition

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

Properties

Element Typeuml: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 Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  depicts
☆  depictsenumeratedEndpointEntity
View
enumeratedTargetLink☆  depicts
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  depicts
☆  depictsspecializes☆  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.
  • The same applies for aProperty, aSourceLink and aTargetLink; both title and description are optional.

Properties

Element Typeuml: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.
  • The globalTitle of the Elements is used to integrate the instances of a partial graphs to an overarching CASCaRA graph.

Properties

Element TypeClass

Statements

CASCaRA Metamodel
contains☆  Element
☆  Link
enumeratedEndpoint☆  Element
☆  ElementenumeratedProperty☆  Property
☆  Elementhas part○  definition
○  globalTitle
○  icon
▣  CASCaRA Metamodel Diagram
shows☆  Element
☆  Entity
☆  Enumeration
☆  Relationship
specializes☆  Element
☆  Elementspecializes☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Entity
☆  EntityenumeratedTargetLink☆  Link
☆  anEntity
hasClass☆  Entity
▣  CASCaRA Metamodel Diagram
shows☆  Entity
☆  Entityspecializes☆  Element
☆  Entity

Entity

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

Properties

Element TypeClass

Statements

☆  depicts
☆  lists
☆  shows
enumeratedEndpointEntity
EntityenumeratedTargetLink☆  linksEnumeratedValue
▣  CASCaRA Semantic Infrastructure Diagram
showsEntity
Actor
Collection
Event
Feature
Organizer
QuantityValue
Requirement
State
specializesEntity

○  enumeratedValue

A defined value of an Enumeration.

Details:

  • It must have the datatype specified by its parent.
  • If the datatype is string, the value is a language string consisting of value and IETF language tag ('multiLangueText').
  • Otherwise the value is a simple value.
  • Values of all datatypes are represented as a string in all data formats, even JSON and JSON-LD.

Properties

Element Typeuml: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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Enumeration
☆  Enumerationhas part○  datatype
○  enumeratedValue
▣  CASCaRA Metamodel Diagram
shows☆  Enumeration
☆  Enumerationspecializes☆  Element
☆  Enumeration

☆  Enumeration

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

Properties

Element Typecas: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 TypeClass

Statements

EventenumeratedTargetLink☆  hasQuantityValue
▣  CASCaRA Semantic Infrastructure Diagram
showsEvent
EventspecializesEntity

Feature

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

Properties

Element TypeClass

Statements

FeatureenumeratedTargetLink☆  hasQuantityValue
▣  CASCaRA Semantic Infrastructure Diagram
showsFeature
FeaturespecializesEntity

☆  FiCo Application

IT-Application for Finance and Controlling.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  FiCo Application
☆  FiCo ApplicationhasClassActor
☆  Glossary
lists☆  FiCo Application
☆  unnamed uml:Class
reads-toSource☆  FiCo Application
☆  unnamed uml:Class
satisfies-toSource☆  FiCo Application
☆  FiCo Architecture Diagram
▣  Very Simple Model with Requirements
shows☆  FiCo Application
☆  unnamed uml:Class
writes-toSource☆  FiCo Application

☆  FiCo Architecture Diagram

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  FiCo Architecture Diagram
☆  FiCo Architecture DiagramhasClassView
☆  FiCo Architecture DiagramhasProperty☆  FMC Block Diagram
☆  System Diagrams
lists☆  FiCo Architecture Diagram
▣  Entity with Property
▣  Very Simple Model with Requirements
shows☆  FiCo Architecture Diagram
☆  FiCo Architecture Diagramshows☆  FiCo Application
☆  FiCo Data
☆  unnamed uml:Class

☆  FiCo Data

Finance and Controlling Data, such as cost-units per project with budget, accrued cost etc.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  FiCo Data
☆  FiCo DatahasClassState
☆  Glossary
lists☆  FiCo Data
☆  unnamed uml:Class
reads-toTarget☆  FiCo Data
☆  unnamed uml:Class
satisfies-toSource☆  FiCo Data
☆  FiCo Architecture Diagram
▣  Very Simple Model with Requirements
shows☆  FiCo Data
☆  unnamed uml:Class
writes-toTarget☆  FiCo Data

☆  FMC Block Diagram

Properties

Element Typecas:aProperty

Statements

CASCaRA Example
contains☆  FMC Block Diagram
☆  FMC Block DiagramhasClass☆  Category
☆  FiCo Architecture Diagram
hasProperty☆  FMC Block Diagram
▣  Entity with Property
shows☆  FMC Block Diagram

○  globalReversed

If set, the instances of the Relationship are interpreted in reverse direction when evaluated in the global graph.

Example:

  • If the ontology defines a term 'satisfies', an incoming relationship named 'satisfied-by' is reversed and the globalTitle is set to 'satisfies' and globalReversed is set to 'true'.

Properties

Element Typeuml:Property

Statements

☆  Relationship
has part○  globalReversed
▣  CASCaRA Metamodel Diagram
shows○  globalReversed

○  globalTitle

The title assigned by matching the title with the terms of the ontology by the 'globalize' operation.

Properties

Element Typeuml:Property

Statements

☆  Configurable
☆  Element
has part○  globalTitle
▣  CASCaRA Metamodel Diagram
shows○  globalTitle

☆  Glossary

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Glossary
☆  GlossaryhasClassOutline
☆  Hierarchy Root
lists☆  Glossary
☆  Glossarylists☆  FiCo Application
☆  FiCo Data
▣  Very Simple Model with Requirements
shows☆  Glossary

☆  hasQuantityValue

Properties

Element Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  hasQuantityValue
☆  hasQuantityValueenumeratedEndpointQuantityValue
Actor
Event
Feature
Requirement
State
enumeratedTargetLink☆  hasQuantityValue
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  hasQuantityValue
☆  hasQuantityValuespecializes☆  Link

☆  Hierarchy Root

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Hierarchy Root
☆  Hierarchy RoothasClassRoot
☆  Hierarchy Rootlists☆  Glossary
☆  Introduction
☆  Requirements
☆  System Diagrams
▣  Very Simple Model with Requirements
shows☆  Hierarchy Root

○  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 Typeuml: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 Typeuml: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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Identifiable
☆  aPackage
graph☆  Identifiable
☆  Identifiablehas part○  description
○  id
○  title
▣  CASCaRA Metamodel Diagram
shows☆  Identifiable
☆  anElement
☆  Configurable
☆  Element
specializes☆  Identifiable
☆  Identifiablespecializes☆  Item

☆  Introduction

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Introduction
☆  IntroductionhasClassOutline
☆  Hierarchy Root
lists☆  Introduction
▣  Very Simple Model with Requirements
shows☆  Introduction

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Item
☆  Itemhas 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 Typeuml: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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Link
☆  LinkenumeratedEndpoint☆  Element
☆  Relationship
enumeratedSourceLink☆  Link
☆  Entity
☆  Relationship
enumeratedTargetLink☆  Link
☆  Linkhas part○  defaultValue
○  maxCount
○  minCount
○  readOnly
○  revisionAware
☆  aLink
hasClass☆  Link
▣  CASCaRA Metamodel Diagram
shows☆  Link
☆  Linkspecializes☆  Configurable
☆  Link

☆  Link

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

Properties

Element Typecas:Link

Statements

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

☆  linksEnumeratedValue

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 Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  linksEnumeratedValue
Entity
Relationship
enumeratedTargetLink☆  linksEnumeratedValue
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  linksEnumeratedValue
☆  linksEnumeratedValuespecializes☆  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 Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  linksSource
Relationship
enumeratedSourceLink☆  linksSource
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  linksSource
☆  linksSourcespecializes☆  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 Typecas:Link

Statements

CASCaRA Example
CASCaRA Semantic Infrastructure
contains☆  linksTarget
Relationship
enumeratedTargetLink☆  linksTarget
▣  CASCaRA Semantic Infrastructure Diagram
▣  Entity with Property having Enumerated Values
shows☆  linksTarget
☆  Priority
specializes☆  linksTarget
☆  linksTargetspecializes☆  Link

☆  lists

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

Properties

Element Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  lists
☆  listsenumeratedEndpointEntity
Relationship
Outline
enumeratedTargetLink☆  lists
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  lists
☆  listsspecializes☆  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 Typeuml:Property

Statements

☆  Configurable
☆  Link
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 Typeuml: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 Typeuml: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 Typeuml:Property

Statements

☆  Configurable
☆  Link
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 Typeuml: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 Typeuml: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 TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
▣  Entity with Property
▣  Very Simple Model with Requirements
showsOrganizer
Package
Root
Table
Tree
View
specializesOrganizer
OrganizerspecializesEntity

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 TypeClass

Statements

OutlineenumeratedTargetLink☆  lists
☆  Glossary
☆  Introduction
☆  Requirements
☆  System Diagrams
hasClassOutline
▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsOutline
OutlinespecializesTree

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 TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
showsPackage
PackagespecializesOrganizer

○  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 Typeuml:Property

Statements

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

☆  Priority

Properties

Element Typecas:Link

Statements

CASCaRA Example
contains☆  Priority
☆  PriorityenumeratedEndpoint☆  Priority-Value
Requirement
enumeratedTargetLink☆  Priority
☆  unnamed uml:Class
hasClass☆  Priority
▣  Entity with Property having Enumerated Values
shows☆  Priority
☆  Priorityspecializes☆  linksTarget

☆  Priority-Value

Properties

Element Typecas:Enumeration

Statements

CASCaRA Example
contains☆  Priority-Value
☆  Priority
enumeratedEndpoint☆  Priority-Value
☆  priorityHigh
hasClass☆  Priority-Value
▣  Entity with Property having Enumerated Values
shows☆  Priority-Value

☆  priorityHigh

Properties

Element TypeClass

Statements

CASCaRA Example
contains☆  priorityHigh
☆  priorityHighhasClass☆  Priority-Value
☆  unnamed uml:Class
hasEndpoint☆  priorityHigh
▣  Entity with Property having Enumerated Values
shows☆  priorityHigh

○  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 Typeuml: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 TypeClass

Statements

☆  Propertycomposes☆  Property
CASCaRA Metamodel
contains☆  Property
☆  Element
enumeratedProperty☆  Property
☆  Propertyhas part○  datatype
○  maxInclusive
○  maxLength
○  minInclusive
○  pattern
☆  aProperty
hasClass☆  Property
▣  CASCaRA Metamodel Diagram
shows☆  Property
☆  Propertyspecializes☆  Configurable
☆  Property

☆  Property

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

Properties

Element Typecas:Property

Statements

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

QuantityValue

A dimensioned quantity with two properties, a 'quantity' (a numeric value) and a 'unit' of measurement.

Properties

Element TypeClass

Statements

☆  hasQuantityValue
enumeratedEndpointQuantityValue
▣  CASCaRA Semantic Infrastructure Diagram
showsQuantityValue
QuantityValuespecializesEntity

○  readOnly

The link value of an instance may not be updated or deleted, once assigned.

Properties

Element Typeuml:Property

Statements

☆  Configurable
☆  Link
has part○  readOnly
▣  CASCaRA Metamodel Diagram
shows○  readOnly

Reads

Properties

Element TypeClass

Statements

☆  unnamed uml:Class
hasClassReads
▣  Very Simple Model with Requirements
showsReads

☆  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 TypeClass

Statements

CASCaRA Metamodel
contains☆  Relationship
☆  RelationshipenumeratedSourceLink☆  Link
☆  RelationshipenumeratedTargetLink☆  Link
☆  Relationshiphas part○  globalReversed
☆  aRelationship
hasClass☆  Relationship
▣  CASCaRA Metamodel Diagram
shows☆  Relationship
☆  Relationshipspecializes☆  Element
☆  Relationship

Relationship

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

Properties

Element TypeClass

Statements

☆  lists
enumeratedEndpointRelationship
RelationshipenumeratedSourceLink☆  linksSource
RelationshipenumeratedTargetLink☆  linksEnumeratedValue
☆  linksTarget
▣  CASCaRA Semantic Infrastructure Diagram
showsRelationship

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 TypeClass

Statements

☆  satisfies-toTarget
enumeratedEndpointRequirement
RequirementenumeratedTargetLink☆  hasQuantityValue
☆  Priority
☆  Consistency
☆  Data Volume
☆  Response Time
hasClassRequirement
▣  CASCaRA Semantic Infrastructure Diagram
▣  Entity with Property having Enumerated Values
▣  Very Simple Model with Requirements
showsRequirement
RequirementspecializesEntity

☆  Requirements

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Requirements
☆  RequirementshasClassOutline
☆  Hierarchy Root
lists☆  Requirements
☆  Requirementslists☆  Consistency
☆  Data Volume
☆  Response Time
▣  Very Simple Model with Requirements
shows☆  Requirements

☆  Response Time

The system SHOULD respond on user queries within 300 ms.

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  Response Time
☆  Response TimehasClassRequirement
☆  unnamed uml:Class
hasEndpoint☆  Response Time
☆  Requirements
lists☆  Response Time
☆  unnamed uml:Class
satisfies-toTarget☆  Response Time
▣  Very Simple Model with Requirements
shows☆  Response Time

○  revision

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

Properties

Element Typeuml:Property

Statements

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

○  revisionAware

Indicates whether an instance of this class points to a specific or any revision of the specified endpoint. In case of the former, the key of such a link instance must contain both identifier and revision. Default is false, so the relationship points to any revision of the endpoint; in that case the key only contains just the identifier.

Examples:

  • A 'lists' link of an outline shall continue to apply to an endpoint, even if updated. So revisionAware is omitted or set to 'false'.
  • A 'verifies' relation shall apply between specific revisions of a test-case and a requirement. So the classes of both aSourceLink and aTargetLink set revisionAware to 'true'. If the requirement is updated, it does not have a 'verifies' link, until explicitly set after repeating the test-case.
  • Of course, only one of the link classes of a Relationship class can be 'revisionAware'.

Properties

Element Typeuml:Property

Statements

☆  Link
has part○  revisionAware
▣  CASCaRA Metamodel Diagram
shows○  revisionAware

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 TypeClass

Statements

☆  Hierarchy Root
hasClassRoot
▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsRoot
RootspecializesOrganizer

Satisfies

Properties

Element TypeClass

Statements

SatisfiesenumeratedTargetLink☆  satisfies-toTarget
☆  unnamed uml:Class
hasClassSatisfies
▣  Very Simple Model with Requirements
showsSatisfies

☆  satisfies-toTarget

Properties

Element Typecas:Link

Statements

CASCaRA Example
contains☆  satisfies-toTarget
☆  satisfies-toTargetenumeratedEndpointRequirement
Satisfies
enumeratedTargetLink☆  satisfies-toTarget
☆  unnamed uml:Class
hasClass☆  satisfies-toTarget
▣  Very Simple Model with Requirements
shows☆  satisfies-toTarget

☆  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 Typecas:Link

Statements

CASCaRA Semantic Infrastructure
contains☆  shows
☆  showsenumeratedEndpointEntity
View
enumeratedTargetLink☆  shows
▣  CASCaRA Semantic Infrastructure Diagram
shows☆  shows
☆  showsspecializes☆  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 TypeClass

Statements

StateenumeratedTargetLink☆  hasQuantityValue
☆  FiCo Data
hasClassState
▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsState
StatespecializesEntity

☆  System Diagrams

Properties

Element Typecas:anEntity

Statements

CASCaRA Example
contains☆  System Diagrams
☆  System DiagramshasClassOutline
☆  Hierarchy Root
lists☆  System Diagrams
☆  System Diagramslists☆  FiCo Architecture Diagram
▣  Very Simple Model with Requirements
shows☆  System Diagrams

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 TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
showsTable
TablespecializesOrganizer

○  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.
  • The same applies for aProperty, aSourceLink and aTargetLink; both title and description are optional.

Properties

Element Typeuml: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 TypeClass

Statements

▣  CASCaRA Semantic Infrastructure Diagram
▣  Very Simple Model with Requirements
showsTree
Outline
specializesTree
TreespecializesOrganizer

☆  unnamed uml:Class

Properties

Element Typecas:aRelationship

Statements

CASCaRA Example
contains☆  unnamed uml:Class
☆  unnamed uml:ClasshasClassReads
Satisfies
Writes
☆  unnamed uml:ClasshasTargetLink☆  unnamed uml:Class
☆  unnamed uml:Classreads-toSource☆  FiCo Application
☆  unnamed uml:Classreads-toTarget☆  FiCo Data
☆  unnamed uml:Classsatisfies-toSource☆  FiCo Application
☆  FiCo Data
☆  unnamed uml:Classsatisfies-toTarget☆  Consistency
☆  Data Volume
☆  Response Time
☆  FiCo Architecture Diagram
▣  Very Simple Model with Requirements
shows☆  unnamed uml:Class
☆  unnamed uml:Classwrites-toSource☆  FiCo Application
☆  unnamed uml:Classwrites-toTarget☆  FiCo Data

☆  unnamed uml:Class

Properties

Element Typecas:aTargetLink

Statements

CASCaRA Example
contains☆  unnamed uml:Class
☆  unnamed uml:ClasshasClass☆  Priority
☆  satisfies-toTarget
☆  unnamed uml:ClasshasEndpoint☆  priorityHigh
☆  Response Time
☆  Data Volume
☆  unnamed uml:Class
hasTargetLink☆  unnamed uml:Class
▣  Entity with Property having Enumerated Values
▣  Very Simple Model with Requirements
shows☆  unnamed uml:Class

○  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.
  • Values of all datatypes are represented as a string in all data formats, even JSON and JSON-LD.

Properties

Element Typeuml: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 TypeClass

Statements

ViewenumeratedProperty☆  Category
ViewenumeratedTargetLink☆  depicts
☆  shows
☆  FiCo Architecture Diagram
hasClassView
▣  CASCaRA Semantic Infrastructure Diagram
▣  Entity with Property
▣  Very Simple Model with Requirements
showsView
ViewspecializesOrganizer

Writes

Properties

Element TypeClass

Statements

☆  unnamed uml:Class
hasClassWrites
▣  Very Simple Model with Requirements
showsWrites