Modell

CASCaRA_Metamodel

Design goals

  • 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.
  • Interoperability: 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’ reduces 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 expressivity of the CASCaRA Graph is sufficient for the purpose.
  • Federated data-spaces: The general use of URIs (or UUIDs with 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.
  • Standard queries: The same queries shall be applicable, no matter where the data came from originally.

CASCaRA_Metamodel_Diagram

The CASCaRA metamodel is a 'platform independent model' (PIM) in OMG terms and defines both the CADSCaRA types (above the dashed line) and the CASCaRA instances (below the dashed line), forming the CASCaRA Product Information Graph in the application domain. CASCaRA types are owl:Class, owl:DatatypeProperty or owl:ObjectProperty. Identifiable CASCaRA instances are owl:NamedIndividual. In the specification/ implementation domain, both CASCaRA types and instances are application data which are modeled as UML classes:

  • Entity and anEntity are type and instance used for model elements, such as a requirement, a function or a system component.
  • Relationship and aRelationship are type and instance used for relations between elements, such as a 'component satisfies a requirement'. A Relationship type may define a set of Entity or Relationship types, whose instances are eligible as source or target of aRelationship instance which is thus always directed.
  • Employing enumeratedProperty, every Entity and Relationship can define a set of Property, each of which specifies a datatype and range. For example, a requirement might have two 'native' properties „title“ and „description“ plus two configurable properties such as "Category" with datatype xs:string and a maximum length of 32 and „Priority“ with a single value of the Enumeration ['high', 'medium', 'low']“.
  • A datatype may be any of those known from XML. As described above, some parameters of Property may restrict the value range, such as minimum and/or maximum value of a number, a string length or a set of enumerated values is defined by an Enumeration.
  • anEntity or aRelationship is thus an instance of Entity or Relationship respectively. Each instance usually has a set of aProperty corresponding with the Property of its type.
  • aPackage is an instance of Entity and contains a subgraph of the global CASCaRA Graph. aPackage may have a set of aProperty corresponding with the Property of its type. Finally, aPackage can be nested.

Note

  • "Technical" super-class and sub-class in the UML sense are defined in this metamodel by means of UML:Generalization.
  • "Semantic" super-type and sub-type representing types of real world instances are specified by the UML associations with an end 'specializes'.
  • As usual, the UML classes with white background and italic name are abstract.

Constraints

All constraints must be satisfied in addition to the JSON-LD schemata, XML schemata or RDF shapes.

General

  • IDs are unique

Model Integrity

  • Property.type is owl:DatatypeProperty
  • Property.specializes is a Property
  • Property.datatype is a valid xs: datatype
  • Property.maxLength is >0 and only specified, if datatype is xs:string
  • Property.pattern is a regular expression and only specified, if datatype is xs:string
  • Property.minInclusive is only specified, if datatype is a number
  • Property.maxInclusive is only specified, if datatype is a number
  • Property.minInclusive is smaller or equal Property.maxInclusive
  • Property datatype and range must be a super-set of those defined in 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.type is owl:ObjectProperty
  • 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 a super-set of those defined in the specialized Link (following the restrictions of OWL)
  • Enumeration.type is owl:Class
  • Enumeration.specializes is an Enumeration
  • Enumeration.enumeratedValue complies with the datatype
  • Entity.type is owl:Class
  • Entity.specializes is an Entity
  • Entity.enumeratedProperty entries are each pointing to a Property
  • Entity.enumeratedTargetLink entries are each pointing to a Link
  • Entity.enumeratedProperty and Entity.enumeratedTargetLink entries are super-sets of those defined in the specialized Entity.
  • Relationship.type is owl:Class
  • Relationship.specializes is a Relationship
  • Relationship.enumeratedProperty entries are each pointing to a Property
  • Relationship.enumeratedSourceLink has exactly one entry pointing to a Link
  • Relationship.enumeratedTargetLink has exactly one entry pointing to a Link
  • Relationship.enumeratedProperty, Relationship.enumeratedSourceLink and Relationship.enumeratedTargetLink entries are super-sets of those defined in the specialized Relationship.
  • aProperty is contained in a parent aPackage, anEntity or aRelationship
  • aProperty.type is a Property
  • aProperty.type is contained in enumeratedProperty list of its parent's type (Entity or Relationship)
  • aProperty minCount and maxCount are met, language-aware in case of xs:string
  • 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 is a simple value (literal) in case the datatype is other than xs:string
  • aProperty.value meets the datatype of its type
  • aProperty.composes entries are aProperty
  • aSourceLink is contained in a parent aRelationship
  • aSourceLink.type is a Link
  • aSourceLink.type is contained in the enumeratedSourceLink list of its parent's type (Relationship)
  • aSourceLink.hasEndpoint (idRef) points to an instance of an entry listed as enumeratedSourceLink of its type (Link).
  • aTargetLink is contained in a parent aPackage, anEntity or aRelationship
  • aTargetLink.type is a Link
  • aTargetLink.type is contained in enumeratedTargetLink list of its parent's type (Entity or Relationship)
  • aTargetLink.hasEndpoint (idRef) points either to an instance of an entry listed as enumeratedTargetLink of its type (Link) or to an enumeratedValue of the listed Enumeration
  • aPackage.type is an Entity
  • aPackage.context defines all namespace prefixes used in its (sub-) graph
  • anEntity.type is an Entity
  • aRelationship.type is a Relationship
  • A specializes chain is a tree (without cyclic dependency)

Limitations

  • Enumerations cannot be contained in a composed Property
  • Links cannot be contained in a composed Property
  • all 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 Type Diagram
Notation UML Class Diagram

Statements

CASCaRA_Metamodel_Diagram shows aLink
anElement
anEntity
aPackage
aProperty
aRelationship
aSourceLink
aTargetLink
color
Configurable
context
creator
datatype
defaultValue
definition
description
Element
Entity
Enumeration
globalReversed
globalTitle
icon
id
Identifiable
Item
itemType
Link
maxCount
maxInclusive
maxLength
minCount
minInclusive
modified
pattern
priorRevision
Property
readOnly
Relationship
revision
revisionAware
title
Value
value

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 project data ('payload') having a clear meaning, datatype and range through its type Property.

Details:

  • aProperty may be required or not depending on the attributes minCount and maxCount of its type, but an existing property must have a value.
  • aProperty value can be mutated.
  • aProperty value cannot be deleted, the whole aProperty must be deleted, if so desired.
  • the value of aProperty must conform with the datatype, length, minInclusive, maxInclusive or pattern of its type Property. Not all restrictions apply for all datatypes.
  • aProperty may be composed of multiple aProperties to form a structured data set according to its type.

Properties

Element Type Class

Statements

aProperty composes aProperty
aProperty has part value
anElement
hasProperty aProperty
CASCaRA_Metamodel_Diagram
shows aProperty
aProperty specializes Item
aProperty type Property

value

The value of aProperty.

Details:

  • If the datatype of the property's type is string, the value is a language string consisting of value and IETF language tag ('multiLangueText'). If there is a value in only one language, the language tag is optional.
  • Some convention is needed when a string is an expression - out of scope at present.
  • Otherwise the value is a simple value.
  • The rules of XML Schema apply, for example value compatibility: "99"^^xsd:integer = "99.0"^^xsd:decimal.

Properties

Element Type uml:Property

Statements

aProperty
has part value
CASCaRA_Metamodel_Diagram
shows value

aSourceLink

A link instance serving as source for a reified aRelationship. aSourceLink has no identifier, thus a property update results in a new revision of the item to which it belongs.

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 makes the distinction.

Details:

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

Example:

  • A relationship 'worksFor' can relate an organization instance (target) to one or multiple person instances using aSourceLink named 'Employee'.

Properties

Element Type Class

Statements

aRelationship
hasSourceLink aSourceLink
CASCaRA_Metamodel_Diagram
shows aSourceLink
aSourceLink specializes aLink

Identifiable

All sub-classes of this class (in UML terms) 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 type 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 a type set may exist in parallel.
  • All instance level items in the lower part of the diagram may be updated individually with change information modified, revision, priorRevision and creator. The prior revision identifier is memorized to support change history and branching. In case of a merge, there are two prior revisions.

Properties

Element Type Class

Statements

aPackage
graph Identifiable
Identifiable has part creator
description
id
modified
priorRevision
revision
title
CASCaRA_Metamodel_Diagram
shows Identifiable
anElement
Configurable
Element
specializes Identifiable
Identifiable specializes Item

id

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

Properties

Element Type uml:Property

Statements

Identifiable
Value
has part id
CASCaRA_Metamodel_Diagram
shows id

title

A multiLanguageText. Maps to dcterms:title or rdf:label.

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 Type uml:Property

Statements

Identifiable
Value
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 types (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 type 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 Type uml:Property

Statements

Identifiable
has part description
CASCaRA_Metamodel_Diagram
shows description

modified

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

Properties

Element Type uml:Property

Statements

Identifiable
has part modified
CASCaRA_Metamodel_Diagram
shows modified

revision

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

Properties

Element Type uml:Property

Statements

Identifiable
has part revision
CASCaRA_Metamodel_Diagram
shows revision

priorRevision

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

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

Properties

Element Type uml:Property

Statements

Identifiable
has part priorRevision
CASCaRA_Metamodel_Diagram
shows priorRevision

creator

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

Properties

Element Type uml:Property

Statements

Identifiable
has part creator
CASCaRA_Metamodel_Diagram
shows creator

Element

A super-class (in UML terms) of Entity (type of entities) and Relationship (type of relationships).

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its 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.
  • Best practice is to release a set of CASCaRA types (thus all sub-classes of Element) from time to time as a whole. The version id is included in the directory path, so that multiple releases can be hosted in parallel.

Properties

Element Type Class

Statements

Link
enumeratedEndpoint Element
Element enumeratedProperty Property
Element has part color
definition
globalTitle
icon
CASCaRA_Metamodel_Diagram
shows Element
Entity
Enumeration
Relationship
specializes Element
Element specializes Identifiable

definition

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

Properties

Element Type uml:Property

Statements

Element
has part definition
CASCaRA_Metamodel_Diagram
shows definition

icon

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

Example:

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

Properties

Element Type uml:Property

Statements

Element
has part icon
CASCaRA_Metamodel_Diagram
shows icon

color

Properties

Element Type uml:Property

Statements

Element
has part color
CASCaRA_Metamodel_Diagram
shows color

globalTitle

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

Properties

Element Type uml:Property

Statements

Configurable
Element
has part globalTitle
CASCaRA_Metamodel_Diagram
shows globalTitle

Link

Is an identifiable link type. It is used as a named connector between a reified Relationship and its source and target, or as a named connector between an Entity and a directly related target. A Link is an owl:ObjectProperty.

Details:

  • A link type can be specialized by another. For example the most global 'linksTarget' may be specialized by 'depicts'.
  • If revisionAware is set for a Link, each endpoint of its instances is deleted as soon as the referenced endpoint itself is updated.

Examples:

  • An Organizer (semantic sub-type of Entity) may list Requirements (another semantic sub-type of Entity) to construct a document outline. As such the Link type lists is specified as enumeratedTargetLink by Organizer.
  • An Entity Requirement might have a property with enumerated values ['high', 'medium' or 'low']. This is represented by a Link type pointing to an Enumeration defining those values.

Properties

Element Type Class

Statements

Link enumeratedEndpoint Element
Relationship
enumeratedSourceLink Link
Entity
Relationship
enumeratedTargetLink Link
Link has part revisionAware
CASCaRA_Metamodel_Diagram
shows Link
Link specializes Configurable
Link
aLink
type Link

revisionAware

Indicates whether an instance of this type is valid for a specific or any revision of the specified endpoints.

Details:

  • If revisionAware is set, all references occurring as endpoint of its instances are deleted as soon as the endpoint itself is updated; otherwise they are preserved.
  • In rare cases only one of a Relationship's enumeratedSourceLink or enumeratedTargetLink can be 'revisionAware'.

Examples:

  • aLink named lists of an outline (folder) shall continue to reference an endpoint, even if updated. So revisionAware of its Link type is omitted or set to 'false'.
  • aRelationship named verifies shall apply between specific revisions of a test-case and a requirement. So the types of both aSourceLink and aTargetLink set revisionAware to 'true'. If the requirement is updated, it has no more verifies relationship, until explicitly set after repeating the test-case.

Properties

Element Type uml:Property

Statements

Link
has part revisionAware
CASCaRA_Metamodel_Diagram
shows revisionAware

aTargetLink

A link instance pointing to the target of a reified aRelationship or to one or more targets of anEntity. aTargetLink has no identifier, thus a property update results in a new revision of the item to which it belongs.

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 type Link, but an existing one must have a value.

Examples:

  • A relationship 'worksFor' can relate one or multiple person instances to an organization instance (target) using aTargetLink named 'Employer'.
  • 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, aRelationship or other.
  • anEntity, aRelationship or aPackage may point to an enumerated Value of an Enumeration. The value must belong to an enumeration listed by enumeratedTargetLink of its type .

Properties

Element Type Class

Statements

anEntity
aRelationship
hasTargetLink aTargetLink
aTargetLink hasValue Value
CASCaRA_Metamodel_Diagram
shows aTargetLink
aTargetLink specializes aLink

Entity

Entity is a type 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 types of properties its instances may have.
  • The definitions of the entity together with those of the properties may be used to build user dialogs with input verification as well as to check its instances whether all property values have a correct type and value range as well as whether all required ones are present.

Properties

Element Type Class

Statements

Entity enumeratedTargetLink Link
CASCaRA_Metamodel_Diagram
shows Entity
Entity specializes Element
Entity
anEntity
type Entity

anEntity

Is used for instances of model-elements such as a system component or a requirement. Is project data ('payload') having a clear meaning through its type Entity.

Details:

  • anEntity must have either a title or a description - or both. This allows to compose documents including text paragraphs without title.
  • anEntity's type enumerates the types of aProperty it may have.
  • anEntity's type also enumerates the types of aTargetLink it may have.

Properties

Element Type Class

Statements

anEntity hasTargetLink aTargetLink
CASCaRA_Metamodel_Diagram
shows anEntity
aPackage
specializes anEntity
anEntity specializes anElement
anEntity type Entity

aRelationship

Is used for relations between entities, such as a 'system component satisfies a requirement'. All relationships are bilateral and directed. Is project data ('payload') having a clear meaning through its type Relationship.

Details:

  • This is a reified graph edge and must have exactly one aSourceLink and aTargetLink each.
  • aRelationship is deleted, if either its aSourceLink or its aTargetsLink is deleted.
  • Its aSourceLink and its aTargetLink must have a type listed as enumeratedSourceLink resp. enumeratedTargetLink by its type Relationship.
  • Similarly, its type enumerates the types of aProperty it may have.
  • Even though aRelationship may have an individual title, it is advised to omit it and assume its type's title to assure that relationships of the same type are named equally.

Properties

Element Type Class

Statements

aRelationship hasSourceLink aSourceLink
aRelationship hasTargetLink aTargetLink
CASCaRA_Metamodel_Diagram
shows aRelationship
aRelationship specializes anElement
aRelationship type Relationship

Item

The super-class (in UML terms) of all CASCaRA metamodel items specifying the type of item to allow for simple schema checking and transformation.

Details:

  • The class is abstract.

Properties

Element Type Class

Statements

Item has part itemType
CASCaRA_Metamodel_Diagram
shows Item
aLink
aProperty
Identifiable
specializes Item

itemType

Denotes CASCaRA types and 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 may be omitted in RDF/OWL, as the top of the type hierarchy shall correspond 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 for each of the concrete metamodel items (represented as UML classes), thus either Enumeration, Link, Property, Entity, Relationship, aPackage, aProperty, aSourceLink, aTargetLink, anEntity or aRelationship.

Properties

Element Type uml:Property

Statements

Item
has part itemType
CASCaRA_Metamodel_Diagram
shows itemType

aLink

Is a super-class (in UML terms) for link instances aSourceLink and aTargetLink.

Details:

  • The class is abstract.
  • aLink may have multiple enumerated endpoints (references).
  • If its type Link is set to revisionAware, the enumeratedEndpoint is deleted, if the endpoint itself is updated.
  • If its type Link is not set to revisionAware, the enumeratedEndpoint remains, if the endpoint itself is updated.
  • The enumeratedEndpoint is deleted, if the endpoint itself is deleted.
  • aLink is deleted, if it has no more enumeratedEndpoints.

Properties

Element Type Class

Statements

aLink hasEndpoint anElement
CASCaRA_Metamodel_Diagram
shows aLink
aSourceLink
aTargetLink
specializes aLink
aLink specializes Item
aLink type Link

anElement

A super-class (in UML terms) of anEntity and aRelationship.

Details:

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

Properties

Element Type Class

Statements

aLink
hasEndpoint anElement
anElement hasProperty aProperty
CASCaRA_Metamodel_Diagram
shows anElement
anEntity
aRelationship
specializes anElement
anElement specializes Identifiable

Property

Every type Entity and Relationship can have an individual set of configurable properties, each of which is uniquely defined by id (name), datatype and range. A Property is an owl:DatatypeProperty.

Details:

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

Example:

  • A requirement might have a configurable property, such as 'Category' with datatype xs:string with a maximum length of 32.
  • A Priority with a single choice of values ['high', 'medium', 'low']“ would be defined as a Link to an Enumeration.

Properties

Element Type Class

Statements

Property composes Property
Element
enumeratedProperty Property
Property has part datatype
maxInclusive
maxLength
minInclusive
pattern
CASCaRA_Metamodel_Diagram
shows Property
Property specializes Configurable
Property
aProperty
type Property

datatype

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

Properties

Element Type uml:Property

Statements

Enumeration
Property
has part datatype
CASCaRA_Metamodel_Diagram
shows datatype

maxLength

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

Properties

Element Type uml:Property

Statements

Property
has part maxLength
CASCaRA_Metamodel_Diagram
shows maxLength

minInclusive

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

Properties

Element Type uml:Property

Statements

Property
has part minInclusive
CASCaRA_Metamodel_Diagram
shows minInclusive

maxInclusive

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

Properties

Element Type uml:Property

Statements

Property
has part maxInclusive
CASCaRA_Metamodel_Diagram
shows maxInclusive

pattern

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

Properties

Element Type uml:Property

Statements

Property
has part pattern
CASCaRA_Metamodel_Diagram
shows pattern

Relationship

A type 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 types its instances may have.
  • Relationship may define (configure) entitiy types or relationship types, whose instances are eligible as source resp. target in a relationship. If none are defined, all entities and relationships are eligible.
  • Relationship is reified (as a rdfs:Resource in RDF), so that it can be a source or target of another Relationship - to make a statement on a statement.
  • The definitions of a relationship together with those of their properties may be used to build user dialogs with input verfication and to check its instances whether all properties have a correct type and value range as well as whether all required ones are present.

Properties

Element Type Class

Statements

Relationship enumeratedSourceLink Link
Relationship enumeratedTargetLink Link
Relationship has part globalReversed
CASCaRA_Metamodel_Diagram
shows Relationship
Relationship specializes Element
Relationship
aRelationship
type 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 Type uml:Property

Statements

Relationship
has part globalReversed
CASCaRA_Metamodel_Diagram
shows globalReversed

Enumeration

A type defining a set of enumerated values, where each value has an id and either a multi-language title in case of datatype xs:string or otherwise a simple value.

A corresponding Link type must be defined with an enumeratedEndpoint to this Enumeration. For example, anEntity 'Requirement-XYZ' has aTargetLink 'Priority' pointing to aValue 'medium' being an instance of Enumeration 'Priority-Values'.

Details:

  • The set of enumerated values of a specialized Enumeration must be a subset of those of its super-type.
  • Enumeration is modelled as a sub-class of Element, however there is no known use-case where configurable properties (enumeratedProperty) make sense.

Properties

Element Type Class

Statements

Enumeration enumeratedValue Value
Enumeration has part datatype
CASCaRA_Metamodel_Diagram
shows Enumeration
Enumeration specializes Element
Enumeration

datatype

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

Properties

Element Type uml:Property

Statements

Enumeration
Property
has part datatype
CASCaRA_Metamodel_Diagram
shows datatype

aPackage

A container for any selection of identifiable metamodel items. Standardized and addressable types can be omitted from aPackage. aPackage may contain specific types (from organization or project ontologies) plus the instances of interest.

Details:

  • The type of aPackage is formally Entity, but should be a sub-type of Organizer (see CASCaRA Semantic Infrastructure).
  • aPackage can be nested, as it is itself an identifiable metamodel item and can hence be part of the graph of one or more parent aPackage.
  • Additional properties such as license or contributor are defined as an enumeratedProperty in its type Package.

Properties

Element Type Class

Statements

aPackage graph Identifiable
aPackage has part context
CASCaRA_Metamodel_Diagram
shows aPackage
aPackage specializes 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 Type uml:Property

Statements

aPackage
has part context
CASCaRA_Metamodel_Diagram
shows context

Configurable

Besides 'native' properties which are defined by the metamodel (such as title and description), an Element 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. Additional 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 Type Class

Statements

Configurable has part defaultValue
globalTitle
maxCount
minCount
readOnly
CASCaRA_Metamodel_Diagram
shows Configurable
Link
Property
specializes Configurable
Configurable specializes Identifiable

minCount

The minimum count of a 'configurable' defined by an Element type for its instances. Thus anElement owning aProperty or aLink must have at least this number of occurrences. Is '0' by default.

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

Properties

Element Type uml:Property

Statements

Configurable
has part minCount
CASCaRA_Metamodel_Diagram
shows minCount

maxCount

The maximum count of a 'configurable' defined by an Element type for its instances. Thus anElement owning aProperty or aLink must have at most this number of occurrences. Is '0' by default.

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

Properties

Element Type uml:Property

Statements

Configurable
has part maxCount
CASCaRA_Metamodel_Diagram
shows maxCount

defaultValue

Optional default value(s) in case an Element's property does not have an individual value when instantiated. It may be changed later on, unless readOnly is set, and must follow the definitions of the Property type resp. Link type at all times, of course.

Details:

  • In case of Link, the value must be an identifier of Enumeration, Entity or Relationship.
  • In case of Property, a value of the datatype as specified must be asserted.
  • 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.
  • In the reference implementation, there is no difference in the instance's value, whether taken from the defaultValue or assigned explicitly. If an explicit value is removed, the defaultValue shall be reassigned.

Properties

Element Type uml:Property

Statements

Configurable
has part defaultValue
CASCaRA_Metamodel_Diagram
shows defaultValue

readOnly

The property value of an individual aPackage, anEntity or aRelationship is assiged with the defaultValue at creation and may not be updated or deleted during the individual's lifetime.

For example, this feature is needed to represent SysML v2 models where constant attributes are defined at type level and assigned to all instances.

Properties

Element Type uml:Property

Statements

Configurable
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 Type uml:Property

Statements

Configurable
Element
has part globalTitle
CASCaRA_Metamodel_Diagram
shows globalTitle

Value

Is a defined value of an Enumeration. If present, it must have either a title or a value.

Details:

  • In case of datatype xs:string, a title must be defined with one or more string values in different languages ('multiLanguageText').
  • In case of all other datatypes value must be a simple value.
  • in RDF, an enumeratedValue is an individual of its Enumeration.
  • In JSON-LD and XML, any enumeratedValue is defined as a child element of the object resp. tag representing the Enumeration.

An instance (anEntity, aRelationship or aPackage) then has aTargetLink pointing to zero to many (0..n) enumeratedValues with hasView. The permissible number of values is defined by minCount and maxCount of the type of aTargetLink.

Properties

Element Type Class

Statements

Enumeration
enumeratedValue Value
Value has part id
title
aTargetLink
hasValue Value
CASCaRA_Metamodel_Diagram
shows Value

id

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

Properties

Element Type uml:Property

Statements

Identifiable
Value
has part id
CASCaRA_Metamodel_Diagram
shows id

title

A multiLanguageText. Maps to dcterms:title or rdf:label.

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 Type uml:Property

Statements

Identifiable
Value
has part title
CASCaRA_Metamodel_Diagram
shows title

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

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

Properties

Element Type Package

Model Elements (Glossary)

Properties

Element Type Model Elements (Glossary)

aLink

Is a super-class (in UML terms) for link instances aSourceLink and aTargetLink.

Details:

  • The class is abstract.
  • aLink may have multiple enumerated endpoints (references).
  • If its type Link is set to revisionAware, the enumeratedEndpoint is deleted, if the endpoint itself is updated.
  • If its type Link is not set to revisionAware, the enumeratedEndpoint remains, if the endpoint itself is updated.
  • The enumeratedEndpoint is deleted, if the endpoint itself is deleted.
  • aLink is deleted, if it has no more enumeratedEndpoints.

Properties

Element Type Class

Statements

aLink hasEndpoint anElement
CASCaRA_Metamodel_Diagram
shows aLink
aSourceLink
aTargetLink
specializes aLink
aLink specializes Item
aLink type Link

anElement

A super-class (in UML terms) of anEntity and aRelationship.

Details:

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

Properties

Element Type Class

Statements

aLink
hasEndpoint anElement
anElement hasProperty aProperty
CASCaRA_Metamodel_Diagram
shows anElement
anEntity
aRelationship
specializes anElement
anElement specializes Identifiable

anEntity

Is used for instances of model-elements such as a system component or a requirement. Is project data ('payload') having a clear meaning through its type Entity.

Details:

  • anEntity must have either a title or a description - or both. This allows to compose documents including text paragraphs without title.
  • anEntity's type enumerates the types of aProperty it may have.
  • anEntity's type also enumerates the types of aTargetLink it may have.

Properties

Element Type Class

Statements

anEntity hasTargetLink aTargetLink
CASCaRA_Metamodel_Diagram
shows anEntity
aPackage
specializes anEntity
anEntity specializes anElement
anEntity type Entity

aPackage

A container for any selection of identifiable metamodel items. Standardized and addressable types can be omitted from aPackage. aPackage may contain specific types (from organization or project ontologies) plus the instances of interest.

Details:

  • The type of aPackage is formally Entity, but should be a sub-type of Organizer (see CASCaRA Semantic Infrastructure).
  • aPackage can be nested, as it is itself an identifiable metamodel item and can hence be part of the graph of one or more parent aPackage.
  • Additional properties such as license or contributor are defined as an enumeratedProperty in its type Package.

Properties

Element Type Class

Statements

aPackage graph Identifiable
aPackage has part context
CASCaRA_Metamodel_Diagram
shows aPackage
aPackage specializes 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 project data ('payload') having a clear meaning, datatype and range through its type Property.

Details:

  • aProperty may be required or not depending on the attributes minCount and maxCount of its type, but an existing property must have a value.
  • aProperty value can be mutated.
  • aProperty value cannot be deleted, the whole aProperty must be deleted, if so desired.
  • the value of aProperty must conform with the datatype, length, minInclusive, maxInclusive or pattern of its type Property. Not all restrictions apply for all datatypes.
  • aProperty may be composed of multiple aProperties to form a structured data set according to its type.

Properties

Element Type Class

Statements

aProperty composes aProperty
aProperty has part value
anElement
hasProperty aProperty
CASCaRA_Metamodel_Diagram
shows aProperty
aProperty specializes Item
aProperty type Property

aRelationship

Is used for relations between entities, such as a 'system component satisfies a requirement'. All relationships are bilateral and directed. Is project data ('payload') having a clear meaning through its type Relationship.

Details:

  • This is a reified graph edge and must have exactly one aSourceLink and aTargetLink each.
  • aRelationship is deleted, if either its aSourceLink or its aTargetsLink is deleted.
  • Its aSourceLink and its aTargetLink must have a type listed as enumeratedSourceLink resp. enumeratedTargetLink by its type Relationship.
  • Similarly, its type enumerates the types of aProperty it may have.
  • Even though aRelationship may have an individual title, it is advised to omit it and assume its type's title to assure that relationships of the same type are named equally.

Properties

Element Type Class

Statements

aRelationship hasSourceLink aSourceLink
aRelationship hasTargetLink aTargetLink
CASCaRA_Metamodel_Diagram
shows aRelationship
aRelationship specializes anElement
aRelationship type Relationship

aSourceLink

A link instance serving as source for a reified aRelationship. aSourceLink has no identifier, thus a property update results in a new revision of the item to which it belongs.

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 makes the distinction.

Details:

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

Example:

  • A relationship 'worksFor' can relate an organization instance (target) to one or multiple person instances using aSourceLink named 'Employee'.

Properties

Element Type Class

Statements

aRelationship
hasSourceLink aSourceLink
CASCaRA_Metamodel_Diagram
shows aSourceLink
aSourceLink specializes aLink

aTargetLink

A link instance pointing to the target of a reified aRelationship or to one or more targets of anEntity. aTargetLink has no identifier, thus a property update results in a new revision of the item to which it belongs.

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 type Link, but an existing one must have a value.

Examples:

  • A relationship 'worksFor' can relate one or multiple person instances to an organization instance (target) using aTargetLink named 'Employer'.
  • 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, aRelationship or other.
  • anEntity, aRelationship or aPackage may point to an enumerated Value of an Enumeration. The value must belong to an enumeration listed by enumeratedTargetLink of its type .

Properties

Element Type Class

Statements

anEntity
aRelationship
hasTargetLink aTargetLink
aTargetLink hasValue Value
CASCaRA_Metamodel_Diagram
shows aTargetLink
aTargetLink specializes aLink

color

Properties

Element Type uml:Property

Statements

Element
has part color
CASCaRA_Metamodel_Diagram
shows color

Configurable

Besides 'native' properties which are defined by the metamodel (such as title and description), an Element 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. Additional 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 Type Class

Statements

Configurable has part defaultValue
globalTitle
maxCount
minCount
readOnly
CASCaRA_Metamodel_Diagram
shows Configurable
Link
Property
specializes Configurable
Configurable specializes Identifiable

context

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

Properties

Element Type uml:Property

Statements

aPackage
has part context
CASCaRA_Metamodel_Diagram
shows context

creator

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

Properties

Element Type uml:Property

Statements

Identifiable
has part creator
CASCaRA_Metamodel_Diagram
shows creator

datatype

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

Properties

Element Type uml:Property

Statements

Enumeration
Property
has part datatype
CASCaRA_Metamodel_Diagram
shows datatype

defaultValue

Optional default value(s) in case an Element's property does not have an individual value when instantiated. It may be changed later on, unless readOnly is set, and must follow the definitions of the Property type resp. Link type at all times, of course.

Details:

  • In case of Link, the value must be an identifier of Enumeration, Entity or Relationship.
  • In case of Property, a value of the datatype as specified must be asserted.
  • 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.
  • In the reference implementation, there is no difference in the instance's value, whether taken from the defaultValue or assigned explicitly. If an explicit value is removed, the defaultValue shall be reassigned.

Properties

Element Type uml:Property

Statements

Configurable
has part defaultValue
CASCaRA_Metamodel_Diagram
shows defaultValue

definition

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

Properties

Element Type uml:Property

Statements

Element
has part definition
CASCaRA_Metamodel_Diagram
shows definition

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 types (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 type 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 Type uml:Property

Statements

Identifiable
has part description
CASCaRA_Metamodel_Diagram
shows description

Element

A super-class (in UML terms) of Entity (type of entities) and Relationship (type of relationships).

Details:

  • The class is abstract.
  • All attributes and associations are inherited by its 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.
  • Best practice is to release a set of CASCaRA types (thus all sub-classes of Element) from time to time as a whole. The version id is included in the directory path, so that multiple releases can be hosted in parallel.

Properties

Element Type Class

Statements

Link
enumeratedEndpoint Element
Element enumeratedProperty Property
Element has part color
definition
globalTitle
icon
CASCaRA_Metamodel_Diagram
shows Element
Entity
Enumeration
Relationship
specializes Element
Element specializes Identifiable

Entity

Entity is a type 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 types of properties its instances may have.
  • The definitions of the entity together with those of the properties may be used to build user dialogs with input verification as well as to check its instances whether all property values have a correct type and value range as well as whether all required ones are present.

Properties

Element Type Class

Statements

Entity enumeratedTargetLink Link
CASCaRA_Metamodel_Diagram
shows Entity
Entity specializes Element
Entity
anEntity
type Entity

Enumeration

A type defining a set of enumerated values, where each value has an id and either a multi-language title in case of datatype xs:string or otherwise a simple value.

A corresponding Link type must be defined with an enumeratedEndpoint to this Enumeration. For example, anEntity 'Requirement-XYZ' has aTargetLink 'Priority' pointing to aValue 'medium' being an instance of Enumeration 'Priority-Values'.

Details:

  • The set of enumerated values of a specialized Enumeration must be a subset of those of its super-type.
  • Enumeration is modelled as a sub-class of Element, however there is no known use-case where configurable properties (enumeratedProperty) make sense.

Properties

Element Type Class

Statements

Enumeration enumeratedValue Value
Enumeration has part datatype
CASCaRA_Metamodel_Diagram
shows Enumeration
Enumeration specializes Element
Enumeration

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 Type uml: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 Type uml:Property

Statements

Configurable
Element
has part globalTitle
CASCaRA_Metamodel_Diagram
shows globalTitle

icon

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

Example:

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

Properties

Element Type uml:Property

Statements

Element
has part icon
CASCaRA_Metamodel_Diagram
shows icon

id

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

Properties

Element Type uml:Property

Statements

Identifiable
Value
has part id
CASCaRA_Metamodel_Diagram
shows id

Identifiable

All sub-classes of this class (in UML terms) 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 type 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 a type set may exist in parallel.
  • All instance level items in the lower part of the diagram may be updated individually with change information modified, revision, priorRevision and creator. The prior revision identifier is memorized to support change history and branching. In case of a merge, there are two prior revisions.

Properties

Element Type Class

Statements

aPackage
graph Identifiable
Identifiable has part creator
description
id
modified
priorRevision
revision
title
CASCaRA_Metamodel_Diagram
shows Identifiable
anElement
Configurable
Element
specializes Identifiable
Identifiable specializes Item

Item

The super-class (in UML terms) of all CASCaRA metamodel items specifying the type of item to allow for simple schema checking and transformation.

Details:

  • The class is abstract.

Properties

Element Type Class

Statements

Item has part itemType
CASCaRA_Metamodel_Diagram
shows Item
aLink
aProperty
Identifiable
specializes Item

itemType

Denotes CASCaRA types and 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 may be omitted in RDF/OWL, as the top of the type hierarchy shall correspond 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 for each of the concrete metamodel items (represented as UML classes), thus either Enumeration, Link, Property, Entity, Relationship, aPackage, aProperty, aSourceLink, aTargetLink, anEntity or aRelationship.

Properties

Element Type uml:Property

Statements

Item
has part itemType
CASCaRA_Metamodel_Diagram
shows itemType

Link

Is an identifiable link type. It is used as a named connector between a reified Relationship and its source and target, or as a named connector between an Entity and a directly related target. A Link is an owl:ObjectProperty.

Details:

  • A link type can be specialized by another. For example the most global 'linksTarget' may be specialized by 'depicts'.
  • If revisionAware is set for a Link, each endpoint of its instances is deleted as soon as the referenced endpoint itself is updated.

Examples:

  • An Organizer (semantic sub-type of Entity) may list Requirements (another semantic sub-type of Entity) to construct a document outline. As such the Link type lists is specified as enumeratedTargetLink by Organizer.
  • An Entity Requirement might have a property with enumerated values ['high', 'medium' or 'low']. This is represented by a Link type pointing to an Enumeration defining those values.

Properties

Element Type Class

Statements

Link enumeratedEndpoint Element
Relationship
enumeratedSourceLink Link
Entity
Relationship
enumeratedTargetLink Link
Link has part revisionAware
CASCaRA_Metamodel_Diagram
shows Link
Link specializes Configurable
Link
aLink
type Link

maxCount

The maximum count of a 'configurable' defined by an Element type for its instances. Thus anElement owning aProperty or aLink must have at most this number of occurrences. Is '0' by default.

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

Properties

Element Type uml:Property

Statements

Configurable
has part maxCount
CASCaRA_Metamodel_Diagram
shows maxCount

maxInclusive

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

Properties

Element Type uml:Property

Statements

Property
has part maxInclusive
CASCaRA_Metamodel_Diagram
shows maxInclusive

maxLength

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

Properties

Element Type uml:Property

Statements

Property
has part maxLength
CASCaRA_Metamodel_Diagram
shows maxLength

minCount

The minimum count of a 'configurable' defined by an Element type for its instances. Thus anElement owning aProperty or aLink must have at least this number of occurrences. Is '0' by default.

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

Properties

Element Type uml:Property

Statements

Configurable
has part minCount
CASCaRA_Metamodel_Diagram
shows minCount

minInclusive

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

Properties

Element Type uml:Property

Statements

Property
has part minInclusive
CASCaRA_Metamodel_Diagram
shows minInclusive

modified

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

Properties

Element Type uml:Property

Statements

Identifiable
has part modified
CASCaRA_Metamodel_Diagram
shows modified

pattern

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

Properties

Element Type uml:Property

Statements

Property
has part pattern
CASCaRA_Metamodel_Diagram
shows pattern

priorRevision

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

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

Properties

Element Type uml:Property

Statements

Identifiable
has part priorRevision
CASCaRA_Metamodel_Diagram
shows priorRevision

Property

Every type Entity and Relationship can have an individual set of configurable properties, each of which is uniquely defined by id (name), datatype and range. A Property is an owl:DatatypeProperty.

Details:

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

Example:

  • A requirement might have a configurable property, such as 'Category' with datatype xs:string with a maximum length of 32.
  • A Priority with a single choice of values ['high', 'medium', 'low']“ would be defined as a Link to an Enumeration.

Properties

Element Type Class

Statements

Property composes Property
Element
enumeratedProperty Property
Property has part datatype
maxInclusive
maxLength
minInclusive
pattern
CASCaRA_Metamodel_Diagram
shows Property
Property specializes Configurable
Property
aProperty
type Property

readOnly

The property value of an individual aPackage, anEntity or aRelationship is assiged with the defaultValue at creation and may not be updated or deleted during the individual's lifetime.

For example, this feature is needed to represent SysML v2 models where constant attributes are defined at type level and assigned to all instances.

Properties

Element Type uml:Property

Statements

Configurable
has part readOnly
CASCaRA_Metamodel_Diagram
shows readOnly

Relationship

A type 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 types its instances may have.
  • Relationship may define (configure) entitiy types or relationship types, whose instances are eligible as source resp. target in a relationship. If none are defined, all entities and relationships are eligible.
  • Relationship is reified (as a rdfs:Resource in RDF), so that it can be a source or target of another Relationship - to make a statement on a statement.
  • The definitions of a relationship together with those of their properties may be used to build user dialogs with input verfication and to check its instances whether all properties have a correct type and value range as well as whether all required ones are present.

Properties

Element Type Class

Statements

Relationship enumeratedSourceLink Link
Relationship enumeratedTargetLink Link
Relationship has part globalReversed
CASCaRA_Metamodel_Diagram
shows Relationship
Relationship specializes Element
Relationship
aRelationship
type Relationship

revision

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

Properties

Element Type uml:Property

Statements

Identifiable
has part revision
CASCaRA_Metamodel_Diagram
shows revision

revisionAware

Indicates whether an instance of this type is valid for a specific or any revision of the specified endpoints.

Details:

  • If revisionAware is set, all references occurring as endpoint of its instances are deleted as soon as the endpoint itself is updated; otherwise they are preserved.
  • In rare cases only one of a Relationship's enumeratedSourceLink or enumeratedTargetLink can be 'revisionAware'.

Examples:

  • aLink named lists of an outline (folder) shall continue to reference an endpoint, even if updated. So revisionAware of its Link type is omitted or set to 'false'.
  • aRelationship named verifies shall apply between specific revisions of a test-case and a requirement. So the types of both aSourceLink and aTargetLink set revisionAware to 'true'. If the requirement is updated, it has no more verifies relationship, until explicitly set after repeating the test-case.

Properties

Element Type uml:Property

Statements

Link
has part revisionAware
CASCaRA_Metamodel_Diagram
shows revisionAware

title

A multiLanguageText. Maps to dcterms:title or rdf:label.

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 Type uml:Property

Statements

Identifiable
Value
has part title
CASCaRA_Metamodel_Diagram
shows title

value

The value of aProperty.

Details:

  • If the datatype of the property's type is string, the value is a language string consisting of value and IETF language tag ('multiLangueText'). If there is a value in only one language, the language tag is optional.
  • Some convention is needed when a string is an expression - out of scope at present.
  • Otherwise the value is a simple value.
  • The rules of XML Schema apply, for example value compatibility: "99"^^xsd:integer = "99.0"^^xsd:decimal.

Properties

Element Type uml:Property

Statements

aProperty
has part value
CASCaRA_Metamodel_Diagram
shows value

Value

Is a defined value of an Enumeration. If present, it must have either a title or a value.

Details:

  • In case of datatype xs:string, a title must be defined with one or more string values in different languages ('multiLanguageText').
  • In case of all other datatypes value must be a simple value.
  • in RDF, an enumeratedValue is an individual of its Enumeration.
  • In JSON-LD and XML, any enumeratedValue is defined as a child element of the object resp. tag representing the Enumeration.

An instance (anEntity, aRelationship or aPackage) then has aTargetLink pointing to zero to many (0..n) enumeratedValues with hasView. The permissible number of values is defined by minCount and maxCount of the type of aTargetLink.

Properties

Element Type Class

Statements

Enumeration
enumeratedValue Value
Value has part id
title
aTargetLink
hasValue Value
CASCaRA_Metamodel_Diagram
shows Value