Subfields are the basic units of meaning in the ontology, analogous to 'tags' in other systems like Brick or Haystack. They are typically defined in a global namespace and must be unique within that namespace.
Key characteristics:
- Case Insensitivity: Subfield names may be camelCased for readability but are not case sensitive.
- No Namespacing: You cannot refer to a subfield with a namespace identifier (e.g.,
HVAC/subfield is invalid). - Global Preference: Most subfields should be global. Defining a subfield locally prevents any field using it from being elevated to the global namespace.
Subfields are categorized to dictate how they combine to form fields:
<table>
<tr
<td class="strong">Category</strong></td
<td class="strong">Description</strong></td
<td class="strong">Examples</strong></td
<td class="strong">Allowed Per Field</strong></td
<td class="strong">Required</strong></td
</tr>
<tr>
<td>Aggregation Descriptor</td>
<td>Modifies aggregations to differentiate temporal (e.g., daily max) from spatial aggregation.</td>
<td>daily, fivesecond, fivesecondrolling</td>
<td>1</td>
<td>Optional (Required if Aggregation is used)</td>
</tr>
<tr>
<td>Aggregation</td>
<td>Spatial aggregation (e.g., max of 3 sensors).</td>
<td>Average, Max, Min</td>
<td>1</td>
<td>Optional</td>
</tr>
<tr>
<td>Descriptor</td>
<td>General purpose modifier (e.g., Discharge, Return, Zone).</td>
<td>Discharge, Return, Zone, Primary, Chilled etc...</td>
<td>10</td>
<td>Optional</td>
</tr>
<tr>
<td>Component</td>
<td>Specific subcomponent (e.g., fan of a fan-coil unit).</td>
<td>Valve, fan, damper...</td>
<td>10</td>
<td>Optional</td>
</tr>
<tr>
<td>Measurement Descriptor</td>
<td>Adds context to measurement (e.g., differential vs absolute pressure).</td>
<td>Differential, relative, static</td>
<td>1</td>
<td>Optional</td>
</tr>
<tr>
<td>Measurement</td>
<td>The type of measurement (e.g., temperature). Required for numeric fields (except `count`).</td>
<td>Temperature, flowrate, flowvolume</td>
<td>1</td>
<td>Optional</td>
</tr>
<tr>
<td>Point Type</td>
<td>Defines directionality, reading type, and telemetric vs static nature. **Required for every field.**</td>
<td>Sensor, Setpoint, Status, Command, Count, Accumulator</td>
<td>1</td>
<td>Required</td>
</tr>
</table>