# Model specifications

We have defined a UML model to use the DFC ontology within an application.

## UML profile

### Stereotypes

<table><thead><tr><th width="226">Stereotype</th><th width="129">Range</th><th>Description</th></tr></thead><tbody><tr><td><code>property</code></td><td><code>Property</code></td><td>Marks a class variable.<br><br>Attributes: <code>getter</code>, <code>setter</code>.<br><br>The two attributes both target an operation of the model. The <code>getter</code> attribute should point to the operation responsible to get the value of the class variable. The <code>setter</code> attribute should point to the operation responsible to set the value of the class variable.<br></td></tr><tr><td><code>propertyMultiple</code></td><td><code>Property</code></td><td>Marks a model property used to define a class variable that is a collection.<br><br>Attributes: <code>getter</code>, <code>setter</code>, <code>adder</code>, <code>remover</code>.<br><br>The <code>getter</code> and <code>setter</code> are inherited from the <code>property</code> stereotype. The <code>adder</code> attribute should point to the operation responsible to add a value to the class variable. The <code>remover</code> attribute should point to the operation responsible to remove a value of the class variable.</td></tr><tr><td><code>constructor</code></td><td><code>Operation</code></td><td>Marks a constructor method.</td></tr><tr><td><code>initializer</code></td><td><code>Parameter</code></td><td>Marks a parameter used to initialize the value of a class variable. This stereotype should be applied on constructor parameters.<br><br>Attributes: <code>property</code>.<br><br>The <code>property</code> attribute should point to the class variable the parameter will initialize.</td></tr><tr><td><code>initializerParent</code></td><td><code>Parameter</code></td><td>Marks a parameter used to initialize the value of a parent class variable. This stereotype should be applied on constructor parameters.<br><br>Attributes: <code>property</code>.<br><br>The <code>property</code> attribute should point to the class variable the parameter will initialize.</td></tr><tr><td><code>getter</code></td><td><code>Operation</code></td><td>Marks an operation used to get the value of a class variable.</td></tr><tr><td><code>setter</code></td><td><code>Operation</code></td><td>Marks an operation used to set the value of a class variable.</td></tr><tr><td><code>adder</code></td><td><code>Operation</code></td><td>Marks an operation used to add a value to a class variable.</td></tr><tr><td><code>remover</code></td><td><code>Operation</code></td><td>Marks an operation used to remove a value from a class variable.</td></tr><tr><td><code>semantic</code></td><td><code>Element</code></td><td>Marks an element mapped to a term of an ontology.<br><br>Attributes: <code>map</code>.<br><br>The <code>map</code> attribute should contain the URI of the mapped ontology term.</td></tr><tr><td><code>blankNode</code></td><td><code>Class</code> , <code>Interface</code></td><td>Marks a class or interface as a blank node.</td></tr><tr><td><code>skosBroader</code></td><td><code>Property</code></td><td>Marks.<br><br>Attributes: <code>map</code>.<br><br>The <code>map</code> attribute should contain the URI of the mapped SKOS term.</td></tr></tbody></table>

## Interfaces

To be written.

## Classes

To be written.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dfc-standard.org/dfc-standard-documentation/dfc-use-cases/connector/model-specifications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
