Mixin

Category
SemiRigidNonSortal
Provides identity
no
Identity principle
multiple
Rigidity
semirigid
Dependency
optional
Allowed supertypes
Mixin
Allowed subtypes
Subkind, Kind, Collective, Quantity, Category, Mixin, Role, Phase, RoleMixin, Relator
Forbidden associations
Structuration
Abstract
True

Definition

A «Mixin» is a semi-rigid type, i.e., it “behaves” as a rigid type for some individuals and as an anti-rigid one for others (it’s the only stereotype with such feature in OntoUML). As the «Category» and the «RoleMixin», the «Mixin» meta-class characterizes individuals that follow different identity principles. Here are some examples of types that could be classified as «Mixin»:

Mixin examples

As categories, mixins are commonly applied during a refactoring process, in particular when we want to state that some properties are applied to both rigid and anti-rigid types. For instance, let’s consider that we defined the following types in our model, Car and Jewellery, a general concept for Ring, Necklace, etc. Now we want to define the type Luxury Good. In our worldview, every jewellery is luxurious, but only cars that are worth more than 30k dollars are. Since the value of a car changes through the years, being a luxurious car is a temporary classification, whilst being a jewellery is a permanent one. The type Luxury Good, therefore, is semi-rigid or a «Mixin».

Mixin application 1

Constraints

C1: A «Mixin» is always abstract. Note that abstract classes are represented with italic labels.

Mixin application 2

C2: A «Mixin» is a semi-rigid construct and because of that, it cannot have as ancestor either a rigid or an anti-rigid type. Therefore, only mixins can be ancestor of other mixins.

Mixin forbidden 1

Common questions

Ask us some question if something is not clear …

Examples

EX1: Conceptual model based on the Music Ontology (see more):

Example Music

EX2: Fragments extracted from the OntoUML Org Ontology (O3), a model about the active structure of organisations (see more):

Example O3 1
Example O3 2