Conceptual model conventions (UML)

Conceptual model as single source of truth

Title: Conceptual model as single source of truth

Identifier CMC-R1

Statement

The UML conceptual model should be used as single source of truth.

Checkable: No

Rule is UML-specific.

Fixed UML interpretation

Title: Fixed UML interpretation

Identifier CMC-R2

Statement:

The UML conceptual model must have a fixed interpretation.

Checkable: No

Informative rule on mapping between model elements.

Element names and URIs

Title: Element names and URIs

Identifier CMC-R3

Statement:

All UML Element names should be fit for URI generation with clear namespace organisation.

Checkable: No

Has overlap with CMC-R4 in that only uppercase or lowercase resource names are allowed (PascalCase and camelCase). However, currently unimplementable due to the complex regular expression(s) required and an error with certain SHACL-SPARQL implementations, as reported on Discord.

Case sensitivity and charset

Title: Case sensitivity and charset

Identifier CMC-R4

Statement:

All UML Element names are case-sensitive and shall follow the CamelCase convention.

Checkable: No

Has overlap with CMC-R3. Enforcing CamelCase with a regex match is hard and may not be able to be implemented directly/correctly and prone to be brittle. Rather, we have to indirectly check if no other characters are used for separation. We can of course check if classes start with an uppercase and properties lowercase. However, currently unimplementable due to the complex regular expression(s) required and an error with certain SHACL-SPARQL implementations, as reported on Discord.

Namespaces and prefixes in element names

Title: Namespaces and prefixes in element names

Identifier CMC-R5

Statement:

Element names shall be organised by namespaces. Namespaces may be indicated through prefixes delimited by colon (:) character, forming qualified names.

Checkable: No

Not the domain of shape validation (ensuring existence of prefixes for namespaces).

Rich annotations through tags

Title: Rich annotations through tags

Identifier CMC-R6

Statement:

UML Tags can be conveniently used for annotating the Elements.

Checkable: No

Rule is UML-specific.

Explicit depiction of external dependencies

Title: Explicit depiction of external dependencies

Identifier CMC-R7

Statement: The UML diagrams should depict how the developed model relates to external (reused) models.

Checkable: No

Rule is UML-specific.

Class inheritance

Title: Class inheritance

Identifier CMC-R8

Statement:

Ensure that the attributes and associations of a superclass apply to all its subclasses.

Checkable: No

Informative rule on design principle.

Abstract classes

Title: Abstract classes

Identifier CMC-R9

Statement:

Classes that are not intended to be instantiated directly can be marked as abstract.

Checkable: No

Rule is primarily specific to UML; not applicable in OWL and has not been observed in practice with SHACL. However, the extended SHACL vocabulary dash-abstract-classes may be investigated in the future for potential applicability at the UML-OWL layer, which may then be translateable as shape validation rules.

Attribute definition and usage

Title: Attribute definition and usage

Identifier CMC-R10

Statement:

UML Attributes shall be used to define properties taking simple datatype values. An attribute declaration should specify its datatype and multiplicity whenever possible [CMC-R11].

Checkable: No

Mostly UML-specific; domain and range are not allowed in the conventions so this would not be applicable. Value ranges are also not always specified in SHACL. That literal properties don’t have object values, and vice versa, is the subject of a syntax checker.

Multiplicity of attributes and connectors

Title: Multiplicity of attributes and connectors

Identifier CMC-R11.

Statement:

The multiplicity of connectors and class attributes should be specified, indicating the minimum and maximum cardinality. The cardinality shall be as permissive as possible in Core Vocabularies and as restrictive as necessary in Application Profiles.

Checkable: No

Mostly UML-specific; presence of maxCount cannot be validated because, if in UML the value * or n is specified, there is no restriction to be generated. Additionally, minCount is not consistently generated for minimum=0.

Connector definition and usage

Title: Connector definition and usage

Identifier CMC-R12

Statement:

UML Connectors shall be used to define relations and properties taking non-atomic type values. A connector declaration should specify multiplicity whenever possible [CMC-R11].

Checkable: No

Rule is UML-specific.

All elements are "public"

Title: All elements are "public"

Identifier CMC-R13

Statement:

The visibility of all UML Elements should be "public".

Checkable: No

Rule is UML-specific.

Controlled lists as Enumerations

Title: Controlled lists as Enumerations

Identifier CMC-R14

Statement:

The controlled lists of values shall be referred to as UML Enumerations and specified whenever possible.

Checkable: No

Rule is UML-specific.

Partition the model into packages

Title: Partition the model into packages

Identifier CMC-R15

Statement:

Packages have no semantic value, but shall be used whenever possible to logically organise the model.

Checkable: No

Rule is UML-specific.

Diagram readability

Title: Diagram readability

Identifier CMC-R16

Statement:

UML class diagrams shall be organised for readability.

Checkable: No

Rule is UML-specific.

Element stereotypes

Title: Element stereotypes

Identifier CMC-R17

Statement:

Stereotypes do not have semantic or normative value. They shall be avoided in the conceptual models unless a good motivation, and a strong need is provided.

Checkable: No

Rule is UML-specific.

Datatype definition and usage

Title: Datatype definition and usage

Identifier CMC-R18

Statement:

We strongly recommend that only OWL 2 compliant datatypes are used. The creation of custom datatypes shall be avoided.

Checkable: No

Anything declared within standard namespaces (RDF(S)/XSD) is acceptable because no new (custom) definitions are introduced. This, however, raises the question of new datatypes defined within these standard namespaces, which is not easy to check.