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