The classes belonging to the Common Descriptors allow the description of properties, characteristics, measurements, dimensions and states of the many entities operating in a factory, including workers, machines, robots and devices.

Clawdite model: highlight on Common Models
Note that the required model attributes are indicated with a red asterisk ("*"). For mandatory relations, refer to the multiplicity instead, as relationships are defined on one side only (i.e., a specific relationship might be described within the other related entity).
AbstractDescriptor
The AbstractDescriptor allows the description of any type of data managed by the HDT: characteristics, measurements and states. The descriptor can be enriched with different information such as its UnitOfMeasure, Category, TaxonomyItem and Scale. Thanks to these auxiliary classes, the AbstractDescriptor(s) can be of different nature, depending on the factory thing they describe.
The AbstractDescriptor is described by the following attributes:
| Attribute | Type | Description |
|---|---|---|
| name* | String | The name of the element the AbstractDescriptor describes. |
| description* | String | A Human-readable description of the AbstractDescriptor. |
The AbstractDescriptor has the following relations:
| Class | Relation type | Multiplicity | Description |
|---|---|---|---|
| UnitOfMeasure | Aggregation | 0..1 | An AbstractDescriptor can be related to at most one unit of measure. |
| Category | Aggregation | 0..* | An AbstractDescriptor can be related to zero or more categories. |
| Scale | Aggregation | 0..1 | An AbstractDescriptor can be related to at most one scale. |
| TaxonomyItem | Aggregation | 0..1 | An AbstractDescriptor can be related to at most one taxonomy item. |
| FunctionalModuleInput | Association | 0..* | An AbstractDescriptor can refer to zero or more input parameters of a functional module[^1]. |
An AbstractDescriptor can be specialized into:
CharacteristicDescriptor: it describes static or quasi-static data characterising entities in a factory (e.g., workers, robots). Examples of characteristics for workers are: a skill, an anthropometric characteristic, a job position. Examples of characteristics for machines are: weight, dimension.
StateDescriptor: it describes the state of entities in a factory. For example, in the case of a worker, possible states are the current task, the next task to perform, the level of perceived fatigue, the current production performance.
MeasurementDescriptor: it describes a measurement collected from a sensor (usually onboarded on a device), which refers to a factory entity. For example, in the case of a worker, a MeasurementDescriptor can describe the heart rate, measured by a wearable device.
UnitOfMeasure
The class UnitOfMeasure has been defined to facilitate the handling of the units of measure, which can refer to all the AbstractDescriptor(s) (i.e., CharacteristicDescriptor(s), StateDescriptor(s), and MeasurementDescriptor(s)). This class allows the definition of a unit of measurement.
The UnitOfMeasure is described by the following attributes:
| Attribute | Type | Description |
|---|---|---|
| name* | String | Name of the unit of measure |
| unit* | String | Unit of the unit of measure |
| symbol* | String | Symbol representing the unit of measure |
Category
The class Category describes an AbstractDescriptor by means of an enumeration. For example, it can be "Anthropometric Characteristic", "Ability", "Skill", etc. It facilitates the organization and structuring of AbstractDescriptor(s).
The Category is described by the following attributes:
| Attribute | Type | Description |
|---|---|---|
| name* | String | The name of the category |
The Category has the following relations:
| Class | Relation type | Multiplicity | Description |
|---|---|---|---|
| Category | Composition | 0..* | A Category can be composed by a set of sub-categories, that allows to create a hierarchical structure. |
| Category | Association | 0..1 | A Category can have at most one parent category in the hierarchical structure. |
Taxonomy and TaxonomyItem
The Taxonomy class is used to classify an AbstractDescriptor accordingly with a taxonomy (either a well-know taxonomy, like (e.g., O*Net or ESCO for working skills, or a private one , e.g., a taxonomy that organises the roles in the company).
The Taxonomy is described by the following attributes:
| Attribute | Type | Description |
|---|---|---|
| name* | String | Name of the Taxonomy. |
| description* | String | Human readable description of the Taxomy. |
The Taxonomy has the following relations:
| Class | Relation type | Multiplicity | Description |
|---|---|---|---|
| TaxonomyItem | Composition | 0..* | A Taxonomy is composed by a set of TaxonomyItem(s), representing the single items belonging to the taxonomy. |
A Taxonomy is composed by a set of TaxonomyItem(s), which represent the single items that compose a taxonomy (e.g., for the skills taxonomy, each TaxonomyItem represents a skill; in the case of the O*Net taxonomy, “Operation Monitoring”, “Quality Control Analysis”, and “Reading Comprehension” are TaxonomyItems).
The TaxonomyItem is described by the following attributes:
| Attribute | Type | Description |
|---|---|---|
| name* | String | Name of the TaxonomyItem. |
| description* | String | Human-readable description of the TaxonomyItem. |
| taxonomyCode* | String | Code that represents the item in the taxonomy. |
The TaxonomyItem has the following relations:
| Class | Relation type | Multiplicity | Description |
|---|---|---|---|
| TaxonomyItem | Composition | 0..* | A TaxonomyItem can be composed by a set of sub-items, creating a hierarchical structure. |
| TaxonomyItem | Association | 0..1 | A TaxonomyItem may have one parent item in the hierarchical structure. |
Scale
The Scale class is used to provide an AbstractDescriptor with a scale that narrows its possible values, making it easier to assign, understand, and interpret the measured value in a meaningful way.
The Scale is described by the following attributes:
| Attribute | Type | Description |
|---|---|---|
| lowerValue* | Int | The lowest value that can be assigned to the scale. |
| upperValue* | Int | The highest value that can be assigned to the scale. |
| description* | String | Human readable description of the Scale. If the scale refers to qualitative/subjective values, it has to include a description of the assignment methodology. |