# Naming Conventions

## Case

### For Everything, Apart from the Data Object Title

The DCI case convention is inspired by the convention used for the OpenID standards, which is [snake case](https://en.wikipedia.org/wiki/Snake_case).

As a consequence, [snake case](https://en.wikipedia.org/wiki/Snake_case) is used as a case convention for everything except for the data object title.

Reference to the OpenID naming practice can be found using this [link](https://openid.net/specs/openid-connect-core-1_0.html).

{% embed url="<https://en.wikipedia.org/wiki/Snake_case>" %}
Snake Case
{% endembed %}

{% embed url="<https://openid.net/specs/openid-connect-core-1_0.html>" %}
openID naming practice
{% endembed %}

### Data Object Title

For the name of the data objects, e.g. CRVSPerson, CamelCase is used.

{% embed url="<https://en.wikipedia.org/wiki/Camel_case>" %}
Camel Case
{% endembed %}

## Labelling of Different Elements of Standards&#x20;

In order to uniquely identify different parts of the standards a unique label is assigned to a part created.

### Example

For instance, CD.COM.01 identifier\_type defines a code directory (CD) that can be a common (COM) data object across multiple interfaces and is the 1st (01) code directory defined in that common interface/GitBook space.

Another example

DO.CRVS.01 crvs\_person defines a data object (DO) that is specific to the CRVS (CRVS) and SP-MIS interface and is the 1st (01) data object defined for that specific CRVS and SP-MIS interface/GitBook space.

### First Part of the Label

This defines which part of the standard we are looking at.

| Acronym | Meaning                           |
| ------- | --------------------------------- |
| ASM     | Assumption                        |
| EXC     | Exception                         |
| PRS     | Process                           |
| DO      | Data object                       |
| CD      | Code directory                    |
| DT      | Data type                         |
| DF      | Data format                       |
| API     | Application programming interface |

### Second Part of the Label

Depending on whether one part of a standard can be used across multiple interfaces or not, as explained in the [structure-and-versioning-of-the-standards](https://standards.spdci.org/standards/standards-for-interoperability-interfaces/structure-and-versioning-of-the-standards "mention"), the respective space/interface is indicated in the second part of the label.

| Acronym | Meaning                                 |
| ------- | --------------------------------------- |
| COM     | Common                                  |
| CRVS    | Civil registration and vital statistics |

### Third Part of the Label

This can either be .API for the API specific code directories/error codes, or a consecutive numbering starting from 01.
