<?xml version="1.0" encoding="UTF-8"?>
<metanorma xmlns="https://www.metanorma.org/ns/standoc" type="semantic" version="2.9.1" schema-version="v2.3.0" flavor="cc">
<bibdata type="standard">
<title language="en" type="main">UnitsML — UnitsDB specification</title>
<docidentifier primary="true" type="CalConnect">CC/CD 36811:2025</docidentifier><docnumber>36811</docnumber><date type="published"><on>2025-03-15</on></date><date type="updated"><on>2025-03-15</on></date><contributor><role type="author"/><organization>
<name>CalConnect</name>
</organization></contributor><contributor><role type="author"/><person>
<name><completename>Ronald Tse</completename></name>
<affiliation><organization>
<name>Ribose Inc.</name>
</organization></affiliation></person></contributor><contributor><role type="author"><description>committee</description></role><organization>
<name>CalConnect</name>
<subdivision type="Technical committee">
<name>UnitsML</name>
</subdivision></organization></contributor><contributor><role type="publisher"/><organization>
<name>CalConnect</name>
</organization></contributor><edition>1</edition><version>2025-03-15</version><language>en</language><script>Latn</script><status><stage>committee-draft</stage></status><copyright><from>2025</from><owner><organization>
<name>CalConnect</name>
</organization></owner></copyright><ext><doctype>standard</doctype><flavor>cc</flavor></ext></bibdata><metanorma-extension><semantic-metadata><stage-published>false</stage-published></semantic-metadata>
<presentation-metadata><toc-heading-levels>2</toc-heading-levels><html-toc-heading-levels>2</html-toc-heading-levels><doc-toc-heading-levels>2</doc-toc-heading-levels><pdf-toc-heading-levels>2</pdf-toc-heading-levels></presentation-metadata></metanorma-extension>
<boilerplate><copyright-statement>

<clause id="_c5cf428e-e58e-91ce-8fad-9c8b81e242c4" obligation="normative"><p id="_97b8accc-ca32-3e7a-2038-4fa6f2698c15">© 2025 The Calendaring and Scheduling Consortium, Inc.</p>
</clause>
</copyright-statement>

<license-statement>

<clause id="_c4364fd8-2f9b-8fdb-cf27-c7a37bb0b74a" obligation="normative">
<title id="_5ad8fb30-fcae-1072-87a2-407e6b4939ec">Warning for Drafts</title>
<p id="_0426ba5a-69d0-b41e-5aa5-7bdbfb2f6938">This document is not a CalConnect Standard. It is distributed for review and         comment, and is subject to change without notice and may not be referred to as         a Standard. Recipients of this draft are invited to submit, with their         comments, notification of any relevant patent rights of which they are aware         and to provide supporting documentation.</p>
</clause>
</license-statement>

<legal-statement>

<clause id="_30bb02f9-a03f-937c-b3bb-0058ec7c185d" obligation="normative"><p id="_4997ac1f-fe23-c399-660a-4ca594a6abda">All rights reserved. Unless otherwise specified, no part of this         publication may be reproduced or utilized otherwise in any form or by any         means, electronic or mechanical, including photocopying, or posting on the         internet or an intranet, without prior written permission. Permission can         be requested from the address below.</p>
</clause>
</legal-statement>

<feedback-statement>

<clause id="_525641bf-9235-cdcb-5b80-9232a01ea9cc" obligation="normative"><p id="_9c7e0878-01cd-c6a2-8060-5caf3135b547" anchor="boilerplate-name">The Calendaring and Scheduling Consortium, Inc.</p>

<p id="_851786db-d5f1-a086-bdb1-3bd48dc4f17c" anchor="boilerplate-address">4390 Chaffin Lane<br/> McKinleyville<br/> California 95519<br/> United States of America<br/> <br/> <link target="mailto:copyright@calconnect.org"/><br/> <link target="https://www.calconnect.org">www.calconnect.org</link></p>
</clause>
</feedback-statement>
</boilerplate><preface><foreword id="_dd0847ad-f32e-78d9-3039-6e62dcfc8aed" obligation="informative">
<title id="_41c9fad3-d4c1-eecc-4fad-f91704acc026">Foreword</title>
<p id="_f3b75505-c791-a798-1b85-9a7ab3880dd4">The Calendaring and Scheduling Consortium (“CalConnect”) is a global non-profit organization with the aim to facilitate interoperability of collaborative technologies and tools through open standards.</p>

<p id="_cd726b9f-d859-b9a7-cb85-77eed11f1bbb">CalConnect works closely with international and regional partners, of which the full list is available on our website (<link target="https://www.calconnect.org/about/liaisons-and-relationships"/>).</p>

<p id="_e821e1fe-2cf4-934e-4567-582480580b1d">The procedures used to develop this document and those intended for its further maintenance are described in the CalConnect Directives.</p>

<p id="_a315c6da-6756-cb39-fc17-d5455e1864c0">In particular the different approval criteria needed for the different types of CalConnect documents should be noted. This document was drafted in accordance with the editorial rules of the CalConnect Directives.</p>

<p id="_7b196501-b14c-50b1-b186-1bd9cb1811e8">Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. CalConnect shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development of the document will be provided in the Introduction.</p>

<p id="_882b2a20-4eba-ae6e-3dc1-2ffc96683fc9">Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement.</p>

<p id="_30fe0540-3d21-3c26-56d4-605f284bd94a">This document was prepared by Technical Committee <em>UnitsML</em>.</p>
</foreword><introduction id="_5a85d59f-c7da-69cf-9968-181b0738506d" obligation="informative">
<title id="_2b2e98d1-114a-3da4-8556-01ae0a724280">Introduction</title>
<p id="_19cb804c-edd6-eb3f-19f3-d1fa1240d4eb">UnitsDB is a comprehensive database of units of measurement, quantities, dimensions, and prefixes that serves as the authoritative reference for the UnitsML framework.</p>

<p id="_796bf633-af3d-afcb-73ab-382ad2c12770">UnitsDB provides a structured and standardized way to represent and reference measurement units and related concepts across various scientific, engineering, and technical domains.</p>

<p id="_a15b10cc-8c60-c8c9-b26f-d50716fe8fcb">UnitsDB is designed to support multiple applications, including:</p>

<ul id="_128fe324-ddd2-4745-ce4b-542afef874eb"><li><p id="_35d2d8e3-0254-e017-6577-4b229603a1d2">Providing an authoritative source of measurement units for scientific and technical documentation</p>
</li>
<li><p id="_b1a926d6-0cdf-3196-1e1e-00fa88555258">Supporting unit conversion systems</p>
</li>
<li><p id="_62484b39-7110-2efe-b807-047e85821494">Enabling semantic interoperability between different systems that work with measurement data</p>
</li>
</ul>

<p id="_a34723a7-ad87-25d2-b3b9-a62869eeff03">This specification defines the data models, structures, and normalization rules for UnitsDB. It is intended for developers implementing UnitsML, database administrators managing UnitsDB installations, and contributors who wish to extend or modify the database.</p>

<p id="_5b6dd9fb-f1ba-6e85-a3de-009326da5978">By following this specification, implementers and users of UnitsDB can ensure consistent and accurate representation of measurement units and related concepts across different applications and domains.</p>
</introduction></preface><sections>

<clause id="_ca946bb2-c6ea-94eb-2589-40e97841e7e6" type="scope" obligation="normative">
<title id="_f70b6ff6-6131-0e24-81e1-850dbe94b63d">Scope</title>
<p id="_215427f6-468e-c7eb-14dd-62b1e2d11b0a">This document specifies the data models, structures, and normalization rules for
UnitsDB, the authoritative database of measurement units, quantities,
dimensions, and prefixes for the UnitsML framework.<note id="_d36153ea-2195-2450-e57a-2f88c27f6193"><p id="_69c8c2c5-2e59-8cde-a7d0-ca89a0f9d5ae">This document applies to UnitsDB version 1.0.0.</p>
</note></p>



<p id="_2ad09205-80f2-7829-c54a-2eef6f8a831b">The specification defines:</p>

<ul id="_e43107d0-d4c7-245f-7bc7-f47eec2f5d83"><li><p id="_5c7a31fe-b2f7-83e6-59a3-691be7a9bb26">The overall architecture of UnitsDB</p>
</li>
<li><p id="_78d0fc04-5034-dfd7-b593-64435f9cb338">The data models for unit systems, prefixes, quantities, dimensions, and units</p>
</li>
<li><p id="_d37a99fa-17d3-02b9-7a5c-fe2fcc53583d">The format and structure of YAML files that comprise the database</p>
</li>
<li><p id="_bbe5a40b-c88d-41cf-85cb-797213b3a742">The normalization rules for data integrity and consistency</p>
</li>
<li><p id="_2b924e60-381f-2b74-f68e-6f4066299a07">The relationships between different entities in the database</p>
</li>
<li><p id="_d7c7f2e0-3b16-7500-e68b-ae72040b9130">A test suite for validation of UnitsDB implementations</p>
</li>
</ul>

<p id="_25b40275-8403-3569-8833-c81e5d38e6ae">This document:</p>

<ul id="_cccdc5bc-7a96-8812-75b8-dd35c64f875f"><li><p id="_9b6420e0-4d9c-1870-8143-9ff203da8aea">Does not specify implementation details for using UnitsDB in applications</p>
</li>
<li><p id="_3939345e-67c5-7c8a-413f-14a04cf4d943">Does not define algorithms for unit conversions or dimensional analysis (though the data provided supports these operations)</p>
</li>
<li><p id="_c93c9cee-904f-9ab6-85ab-bdb96ccdf64d">Does not provide a comprehensive list of all units, quantities, dimensions, and prefixes (these are provided in the actual database)</p>
</li>
</ul>

<p id="_9ab13d61-311b-d030-e876-7aef1c75c961">This specification is intended for:</p>

<ul id="_da4de6ae-fd04-2b45-9c1f-594098f9a5ff"><li><p id="_f6fa58e4-90c7-7a2c-f5f8-affc8023573e">Developers implementing UnitsML systems</p>
</li>
<li><p id="_3f10a50d-da79-cc98-725a-5328dcad40ea">Developers managing UnitsDB database instances</p>
</li>
<li><p id="_346530f1-c541-26cd-99cc-4e860f14b579">Contributors extending or modifying the UnitsDB database</p>
</li>
<li><p id="_a9fbdd12-ab50-222a-2102-1b21a256b918">Standards developers referencing UnitsDB</p>
</li>
</ul>

<p id="_9f615a32-6d76-a42f-240c-f7d81eab31a1">The specification enables interoperable representation of measurement units and related concepts across different applications, domains, and systems.</p>
</clause>



<terms id="_80f5a015-59b6-d24c-963f-4667d7bb6cde" obligation="normative">
<title id="_dfb2eab2-f980-6365-3c47-81d0eb272962">Terms and definitions</title><p id="_1fbc7bf1-a8de-c3eb-ee88-3b4cf950e61b">For the purposes of this document, the following terms and definitions apply.</p>
<term id="_5dff17f1-c4f6-fc99-d3da-1115c7409e9e" anchor="term-unit"><preferred><expression>
<name>unit</name>
</expression>
</preferred>
<definition id="_bf7574fd-05b5-058d-7696-61c73e15f0ba"><verbal-definition id="_847f3968-e076-5ad5-253d-9079c1bce871"><p id="_3c3c78cb-a177-7b47-acc5-fda3f9a9d946">reference quantity with which other quantities of the same kind are compared to express their value</p></verbal-definition></definition>




 <termnote id="_4435154b-9c6f-e83f-d14d-8cb36492f87d"><p id="_4a79cadb-7e6b-ed3e-f097-53f1fdf004e4">Units are identified by conventionally assigned names and symbols.</p>
</termnote><termexample id="_1891807c-1b4f-6693-06d2-e04b59113c3a"><p id="_3eab2655-89ec-07bb-07e3-13d4f5194ac5">The meter is a unit of length.</p>
</termexample></term>

<term id="_933523fb-4d63-b2da-4c41-bc4bb8ef2f1e" anchor="term-quantity"><preferred><expression>
<name>quantity</name>
</expression>
</preferred>
<definition id="_91f36b0e-8edb-503a-c80c-9eb9ef5a6af9"><verbal-definition id="_1c1d4791-cd77-0fcd-be0d-ae4fbc4035fe"><p id="_4738a61d-0935-2a69-ce22-fc22ab6f4ebc">property of a phenomenon, body, or substance, where the property has a magnitude that can be expressed by a number and a reference</p></verbal-definition></definition>


 <termexample id="_960fd16f-6b18-c283-9017-9081e659d91b"><p id="_94e044c7-252a-1509-1263-f64e26ebd2fc">Length, mass, and time are quantities.</p>
</termexample></term>

<term id="_807f881c-f4fc-f398-7534-b9f9cabb846b" anchor="term-dimension"><preferred><expression>
<name>dimension</name>
</expression>
</preferred>
<definition id="_42996dd4-7560-e807-a4cc-edc764a9d22d"><verbal-definition id="_aa00892d-d65a-ac0c-24fd-0253413236ac"><p id="_ef247d8e-012a-3e8a-711d-6a3ec8395668">expression of the dependence of a quantity on the base quantities of a system of quantities as a product of powers of factors corresponding to the base quantities</p></verbal-definition></definition>


 <termnote id="_e0619fbd-3889-e798-1bd2-b4eb9896e681"><p id="_9e172510-a049-9f53-c951-69008575537c">In UnitsDB, dimensions are represented as combinations of seven base dimensions: length (L), mass (M), time (T), electric current (I), thermodynamic temperature (Θ), amount of substance (N), and luminous intensity (J).</p>
</termnote></term>

<term id="_52ddfbef-1cf9-6116-08c5-d5d9226f0801" anchor="term-prefix"><preferred><expression>
<name>prefix</name>
</expression>
</preferred>
<definition id="_43d69b1e-6db7-332f-648e-33a6e0f81468"><verbal-definition id="_70272f1f-81da-00cf-28b0-e9b59f875737"><p id="_95a90456-2ab6-2bc8-704a-d86cb755e710">name or symbol that, when attached to a unit, multiplies that unit by a specified factor</p></verbal-definition></definition>


 <termexample id="_7ec5dd55-e987-db38-a492-cb59b8761ef9"><p id="_8c4fcaaf-2be1-7a79-c5c0-37bbba06fc71">The kilo prefix multiplies a unit by 1000.</p>
</termexample></term>

<term id="_e776e02a-8670-9bfc-a998-5d491069b476" anchor="term-unit-system"><preferred><expression>
<name>unit system</name>
</expression>
</preferred>
<definition id="_d8493c3e-58d4-292c-2d60-d5fc1e2f0f32"><verbal-definition id="_f2d1e409-33b2-4d51-5eda-974ce47734f8"><p id="_a77f35f8-5a03-957f-f2a8-f44d909c05fc">set of units used to express quantities in a consistent manner</p></verbal-definition></definition>
 </term>

<term id="_82a8544b-0d5b-99a1-164e-bf5ab338fc4c" anchor="term-SI"><preferred><expression>
<name>SI</name>
</expression>
</preferred>
<definition id="_b74ae09d-ba53-b95f-cb47-23942cc5d6b3"><verbal-definition id="_28e70d53-d5a7-dd27-29f1-111b380af76e"><p id="_5f239a82-5ddd-e804-7dbd-a1f534e53b93">International System of Units</p></verbal-definition></definition>


 <termnote id="_4ca028cd-5e86-c5d8-6470-cb622f3f4702"><p id="_d9f0ad55-25aa-ce5f-3a88-15aa5ab2bb7b">SI is the modern form of the metric system and is the most widely used system of measurement.</p>
</termnote></term>

<term id="_a76ed4db-80ad-8c2b-f84a-8cbef0e17abe" anchor="term-base-unit"><preferred><expression>
<name>base unit</name>
</expression>
</preferred>
<definition id="_aa05b8f9-88d3-9ba4-47ee-5b946e8d3897"><verbal-definition id="_ae1c89c5-ca36-d836-6ce7-ea37ba6ee800"><p id="_b6eaccfe-a648-7987-fc63-75baf5828f16">unit of measurement of a base quantity in a given system of quantities</p></verbal-definition></definition>
 </term>

<term id="_f1f182b1-649c-0f83-8839-5f6f3482ab52" anchor="term-derived-unit"><preferred><expression>
<name>derived unit</name>
</expression>
</preferred>
<definition id="_cec9525d-2639-04fe-d9a9-05370e558495"><verbal-definition id="_8a72c522-7947-3897-e4ad-69cdbe3c6752"><p id="_61d3eff3-fcd3-c1da-883a-e0d87f3fa144">unit of measurement of a derived quantity in a given system of quantities</p></verbal-definition></definition>
 </term>

<term id="_db2de08c-8d41-49ca-dc90-26424f6d7e31" anchor="term-normalization-rule"><preferred><expression>
<name>normalization rule</name>
</expression>
</preferred>
<definition id="_0575a814-61c0-e45e-77b1-c9b9bc868b83"><verbal-definition id="_f1ea3514-4077-6ae7-92fc-18bf50f661ae"><p id="_da7aedd3-aa2c-e706-3506-20a9d93cac20">constraint that ensures the consistency, integrity, and standardization of data</p></verbal-definition></definition>
 </term>

<term id="_01f03d89-aba7-0197-b035-e7e7df8a157a" anchor="term-data-model"><preferred><expression>
<name>data model</name>
</expression>
</preferred>
<definition id="_ea272176-eb62-f9e1-70e5-0cf98e6738b1"><verbal-definition id="_7b466bc5-1bca-30f3-e1d8-29b5930b72e0"><p id="_e73eed57-a910-5f5b-cc49-884484b197b2">formal description of the structure, attributes, and relationships of entities</p></verbal-definition></definition>
 </term>
</terms>

<clause id="_f717989d-de1c-cc38-af24-14ebb0e609df" obligation="normative">
<title id="_67e51104-2c5e-3193-d9ad-48f3d9d61cd1">Principles</title>
<clause id="_fe6f358d-03e2-fd91-844d-00760eff101c" obligation="normative">
<title id="_53d82e48-1024-e16a-9901-40ceda1ab9b0">General</title>
<p id="_b3a9e949-74d8-858d-c1d0-bd74351bcbbb">The design and architecture of the UnitsDB adheres to the following principles.</p>

<ul id="_e2a5737f-4b92-d207-6be4-4a0072a02711"><li><p id="_53f943f7-2d3f-ad3c-69dd-acca778ba9fc">Scientific accuracy and completeness</p>
</li>
<li><p id="_85e04fe2-1601-67f8-07b8-418431c134c7">Interoperability</p>
</li>
<li><p id="_368ef879-4f19-d705-30e9-1fe1088cdae4">Declarative content</p>
</li>
<li><p id="_fffb2d44-e993-7536-6fb2-2f5e6022e256">Ease of use and maintenance</p>
</li>
<li><p id="_4e6a2788-aae2-6e7d-dd4f-21712a3eba9b">Extensibility</p>
</li>
</ul>
</clause>

<clause id="_d076bb5d-a558-ad17-19a7-63a5011306d8" obligation="normative">
<title id="_3dd8135b-5a2a-27a5-012d-9a15ca43ed3f">Scientific accuracy and completeness</title>
<p id="_4b58ed83-2ab2-4c3e-a04a-99d0c7c7ff54">UnitsDB adheres to the International System of Units (SI) and aims to facilitate accurate measurement across various domains towards international standards.</p>

<p id="_b6e8e7c6-81e3-4446-6732-dcd97f4da1a4">The database aims to accurately represent:</p>

<ul id="_57db33d0-bb2a-2cee-a0ba-c9cc38a68abe"><li><p id="_676b0958-d3d2-c591-ea81-45139153e282">Base and derived units as defined by SI.</p>
</li>
<li><p id="_8a94d137-58c3-490d-0803-dc395d200483">Information models used in the representation and realization of a digital units system.</p>
</li>
<li><p id="_0b80a9bd-2034-a19d-2edd-4afc1902cd55">Historical and non-SI units that are still in use.</p>
</li>
</ul>
</clause>

<clause id="_e10dab31-8e31-0e83-c30e-ebd69c0cd3b6" obligation="normative">
<title id="_1c41d8de-4ebc-ad26-a611-96091458f48b">Interoperability</title>
<p id="_626613f2-a2f9-62d5-a225-3ac328639dae">UnitsDB supports interoperability through:</p>

<ul id="_22dd77a1-dd0d-c671-62bd-d5e617d01b3a"><li><p id="_81ba9c5d-c6fc-883e-d87a-b11005743497">Simple realization of the database in human-readable formats</p>
</li>
<li><p id="_3609f085-196e-53eb-988b-ccce919648ca">Globally unique identifiers</p>
</li>
<li><p id="_5f854c62-4e87-f67f-82d5-a4069ed7fa7f">Support for presentational needs of units</p>
</li>
<li><p id="_8c8036c1-15cf-fbcd-697a-a720fc14c152">Well-defined data models allowing straightforward serialization to various formats</p>
</li>
</ul>
</clause>

<clause id="_71ec6815-a619-de4f-cc0e-8ff649436723" obligation="normative">
<title id="_39d5df7f-add2-bda8-2f10-3dd0d441facd">Declarative content</title>
<p id="_08763041-2f3b-0042-14c2-88f12c869c07">UnitsDB maintains structural consistency through:</p>

<ul id="_3112d728-185c-3385-a960-6ff829061041"><li><p id="_34427b30-82ff-c928-5a5c-5a6dd1954969">Well-defined data models for each entity type</p>
</li>
<li><p id="_787afd56-f91b-43e6-4692-d4fa64934905">Separation of concerns in information models</p>
</li>
<li><p id="_c176b65d-07d1-51bb-142e-d3d0fc39fd8b">Explicit definitions of relationships between information models</p>
</li>
</ul>
</clause>

<clause id="_ac1507df-ae6a-20fe-242f-8c3c5de23319" obligation="normative">
<title id="_c5c7a3e5-9afe-2529-2ecc-be0171c2350e">Ease of use and maintenance</title>
<p id="_3240eab6-a8d9-d0f0-5620-cc96f529c4aa">UnitsDB applies data normalization principles to:</p>

<ul id="_356ed2f3-7521-a36e-c77a-b293c937bf8d"><li><p id="_0677b869-0d7c-0508-5cd8-689e5485113e">Eliminate redundancy in the database</p>
</li>
<li><p id="_3c1a866f-5348-b8f3-3a26-032109518758">Ensure data integrity across related entities</p>
</li>
<li><p id="_7f915825-9c84-aab2-dcad-1f66f99b3d65">Simplify maintenance and updates</p>
</li>
<li><p id="_9499c8bd-5b39-b692-cee3-8afdcbb742cb">Support efficient querying and processing</p>
</li>
<li><p id="_745d3b2c-043c-71c2-a973-cee346f544b7">Enable validation and consistency checking</p>
</li>
</ul>
</clause>

<clause id="_deb31b2c-1f05-d606-ffb0-1d2cf53508e1" obligation="normative">
<title id="_3717b866-b641-0d28-1cdb-bf02c43bf5b6">Interoperability</title>
<p id="_4077f46c-cea0-8f87-3504-9afcac0f266a">UnitsDB supports interoperability through:</p>

<ul id="_3ceec542-b702-ec4d-6307-798070df983f"><li><p id="_e1641ee3-a2f5-d477-8b8b-55bbf3d9ff02">Use of industry-standard YAML for data representation</p>
</li>
<li><p id="_89e50b52-8a48-2133-304c-1559178cae02">Clear separation of content from presentation</p>
</li>
<li><p id="_0cdb4998-e353-f1d4-841d-2ee60bc8bdb0">Consistent identifiers and cross-references</p>
</li>
<li><p id="_917ea167-c2f1-e25c-eadd-b9eb237c90ab">Support for multiple symbol representations (ASCII, Unicode, MathML, LaTeX, HTML)</p>
</li>
<li><p id="_1904deab-8d0a-d97e-e091-a39a32f532e3">Well-defined data models that can be mapped to various implementation formats</p>
</li>
</ul>

<p id="_0d9c453c-32a8-93bd-fe35-0db6378491f6">This interoperability enables UnitsDB to serve as a reference database for diverse applications and systems.</p>
</clause>

<clause id="_6c5035bc-542e-451c-f7cc-c2f55d349d1d" obligation="normative">
<title id="_6a443c00-f0b6-b663-4886-83e997469f60">Ease of use and maintenance</title>
<p id="_3022f1b4-3389-f357-5193-af0b7caef3e0">UnitsDB aims to provide users an easy to use information database while keeping it easy and simple to maintain.</p>

<ul id="_dc5813f8-c138-7b8b-8637-8db95807c0f7"><li><p id="_ced777b2-5307-c293-2022-2e6250a93ccd">Human-readable content facilitates inspection and understanding by humans and transparent review and validation of content</p>
</li>
<li><p id="_6ae8f92a-3ae3-b061-ac2b-81c1e79566d6">Automated validation and consistency checking</p>
</li>
<li><p id="_752039e5-c92c-e163-f397-82b376ca6c93">Allows incofmproation into software sytsemss</p>
</li>
<li><p id="_ca0320a9-228a-9f37-afb7-700c0eee3001">Efficient querying and filtering</p>
</li>
<li><p id="_22607c66-e5c5-70ae-0245-11e8068efdb9">Transformation to other formats and representations</p>
</li>
</ul>
</clause>

<clause id="_aa5b8b5b-e87b-e7a1-f5c0-f4e75e051355" obligation="normative">
<title id="_5be7560a-34d6-bebe-5160-ef8d334132c8">Extensibility</title>
<p id="_9fb8fdbc-f31d-5967-19bb-ec6f0fe4df4a">UnitsDB is designed to be extensible to accommodate:</p>

<ul id="_6e640483-0e9d-962b-e9dc-fd12bb2e2e6f"><li><p id="_98862a72-7918-0ce8-1301-fbdf7469ffbd">New units as they are defined, come into use or encoded historically</p>
</li>
<li><p id="_6e2e307b-1268-4efb-70d2-a10a76390622">Additional quantities in emerging domains</p>
</li>
<li><p id="_87b74475-74ce-8c53-b040-113497535692">New prefixes defined in the future</p>
</li>
<li><p id="_bfd0588b-d73b-2f91-d2a6-3a527be6abd5">Domain-specific extensions and annotations</p>
</li>
</ul>
</clause>
</clause>

<clause id="_4dd34e2f-f102-f9ad-a8cc-30b97e0aebf6" obligation="normative">
<title id="_0036881f-4573-f68b-667e-38c3209ddec9">Architecture</title>
<clause id="_cb6fb4f3-0ecc-9ad9-f721-adb3fbe4891f" obligation="normative">
<title id="_0175f76d-716b-304d-d5e0-55b2c2c71130">General</title>
<p id="_de98a0b1-c5d4-52d5-41c3-aea40b030fd4">The UnitsDB architecture follows a modular design that organizes measurement-related concepts into distinct but interconnected data models. These data models are implemented as YAML files, with each file focusing on a specific aspect of the measurement system.</p>

<p id="_d3d08a4c-db2f-51b8-fb2a-5b809d7f7cf6">This section describes the overall architecture, the relationships between different entities, and how the lutaml-model language is used to define the data models.</p>
</clause>

<clause id="_b4cb18f9-91a8-47b4-12ff-faf7f27aa141" obligation="normative">
<title id="_c3d744db-851a-e499-ca01-fd1427547857">File organization</title>
<p id="_4f23a36a-a258-9478-fdd1-f33def33a606">UnitsDB is organized into five primary YAML files, each responsible for a different component of the measurement system.</p>

<dl id="_bb3c61e5-9fb8-2e30-e716-ee2babdba889"><dt><tt>dimensions.yaml</tt></dt>
<dd id="_a38b349f-c31f-6931-0fde-2d5083ba2f59"><p id="_8836d00e-b226-b036-86e6-1cacb10b3a19">Contains definitions of physical dimensions (length, mass, time, etc.)</p>
</dd>
<dt><tt>quantities.yaml</tt></dt>
<dd id="_d2b91e5a-d99d-ffc7-78f0-e95b44f22a59"><p id="_eb498d83-00a4-2f4c-7332-3faee347c97a">Contains definitions of measurable quantities (length, velocity, force, etc.)</p>
</dd>
<dt><tt>units.yaml</tt></dt>
<dd id="_503b26b3-4ca5-d8c1-1371-0a8f4395a8ce"><p id="_079b447d-a053-8a19-7a60-652984af1b3a">Contains definitions of measurement units (meter, second, newton, etc.)</p>
</dd>
<dt><tt>prefixes.yaml</tt></dt>
<dd id="_99cdda01-7d90-af9c-c857-550b7e42aad7"><p id="_e9eb455a-842f-8da8-e1bf-1100b534c1a5">Contains definitions of unit prefixes (kilo, milli, mega, etc.)</p>
</dd>
<dt><tt>unit_systems.yaml</tt></dt>
<dd id="_3b300abf-fe17-4390-19a7-dbcd165aab8b"><p id="_274c960d-e879-d51e-c0cb-ba9b17412b2e">Contains definitions of unit systems (SI, non-SI) and their categories</p>
</dd>
</dl>

<p id="_8e26b205-1cde-5911-9c57-221df52a8d5b">Each file contains entries that follow a consistent model structure as defined using the lutaml-model language.</p>
</clause>

<clause id="_7a32ba0a-13fa-90ee-0455-e15895e1eae7" obligation="normative">
<title id="_76c4e52b-a190-7760-56f1-1ce84c5c5c01">Entity relationships</title>
<p id="_da9c6bd3-7267-71e6-4097-5fbd90863159">The UnitsDB architecture establishes explicit relationships between different entities to create a coherent measurement system:</p>

<sourcecode id="_aa4cab9c-53a5-08c8-014b-b36c6c17247b"><body>                                 +-------------+
                                 | UnitSystem  |&lt;--------+
                                 +-------------+         |
                                                         |
                   +-----------+                         |
                   |           |                         |
  +------------+   | Dimension |  +----------+           |
  |   Prefix   |   |           |  | Quantity |           |
  +------------+   +-----------+  +----------+           |
         |               ^             ^                 |
         |               |             |                 |
         v               |             |                 |
  +----------------------------------------------------------------+
  |                             Unit                               |
  +----------------------------------------------------------------+</body></sourcecode>


<p id="_3a3ce69c-697d-fd87-000b-be1399c8e5ec">The key relationships are described below.</p>

<ul id="_39fb32ce-32b7-e40b-fd9a-10a02255312b"><li><p id="_faaa8d36-3e19-6b51-e9c7-149d7d21e9ca">Dimension ↔ Quantity: Each quantity has exactly one dimension, but multiple quantities can share the same dimension</p>
</li>
<li><p id="_b6bfb6fe-e00b-d721-40ae-9f7f121363f7">Quantity ↔ Unit: Each quantity can be measured by multiple units, and each unit can measure multiple quantities (many-to-many relationship)</p>
</li>
<li><p id="_1a54ab1e-dd22-a9d3-3727-3f7deca147fb">Unit ↔ Dimension: Each unit has exactly one dimension, which must match the dimension of the quantities it measures</p>
</li>
<li><p id="_5dc0cf19-43c6-dec4-6941-9da2126a8137">Prefix ↔ Unit: Prefixes can be applied to units to create new prefixed units</p>
</li>
<li><p id="_5c06b172-f360-45ca-9460-e2b8de76f207">UnitSystem ↔ Unit: Each unit belongs to a specific unit system</p>
</li>
</ul>

<p id="_a7b3105e-f246-185b-06a7-19c2a8594db7">These relationships are implemented through cross-references between the different YAML files.</p>
</clause>

<clause id="_a57bf5d5-d1bf-59c7-8fce-7f2891002e48" obligation="normative">
<title id="_1c2595a1-28dc-1a92-1b3e-14fa5e1c391d">Cross-reference mechanism</title>
<p id="_3663d174-349a-4f86-e202-8c67aa51b8fe">UnitsDB uses a consistent cross-reference mechanism to link entities across different files:</p>

<ul id="_48bb09a8-677e-29ce-ddc9-bac7ba884583"><li><p id="_86841855-8f4b-95ee-cb76-538bae14c922">References to dimensions use the format <tt>#NISTdX</tt> (e.g., <tt>#NISTd1</tt> for length).</p>
</li>
<li><p id="_a2e8a6ba-44f2-4b71-fb4c-1c3343cbc83b">References to quantities use the format <tt>#NISTqX</tt> (e.g., <tt>#NISTq1</tt> for length).</p>
</li>
<li><p id="_8fa7684e-ed09-ec8d-d1b4-95c76eae4270">References to units use the format <tt>#NISTuX</tt> (e.g., <tt>#NISTu1</tt> for meter).</p>
</li>
<li><p id="_218d3b8a-32d9-e762-80c6-d74073599fdf">References to prefixes use the format <tt>#NISTpX_Y</tt> (e.g., <tt>#NISTp10_3</tt> for kilo).</p>
</li>
</ul>

<p id="_78c8f5a0-1b4e-0be3-8e36-f57eed7fb9d9">These cross-references create a web of relationships that maintain the integrity and coherence of the measurement system.</p>
</clause>

<clause id="_30ca4850-aae6-0bc4-c8ec-6b2b10198592" obligation="normative">
<title id="_b76c7eed-92e2-a90f-2604-a17be270a5dc">Information models</title>
<p id="_baa3411a-0855-d4ef-b68e-82769b5864ad">UnitsDB defines five primary classes.</p>

<dl id="_174e9e7c-358a-ffec-c856-f5b285c9accb"><dt><tt>Dimension</tt></dt>
<dd id="_339913dd-b8ff-ce2b-98c0-ef4ad914bd24"><p id="_f4ef9074-11d2-23b4-32bd-c8e23820a99c">Represents the mathematical concept of a physical dimension</p>
</dd>
<dt><tt>Quantity</tt></dt>
<dd id="_480ba570-2219-dd76-71a4-44eb5c125004"><p id="_f796175b-c2c6-a404-572e-d212fe78f48d">Represents a measurable property with a specific dimension</p>
</dd>
<dt><tt>Unit</tt></dt>
<dd id="_6c0abe16-d901-d726-cadd-0e0a76b9d63a"><p id="_f42173a4-f16b-b5c1-0928-3a3d8316cfa4">Represents a reference for measuring quantities</p>
</dd>
<dt><tt>Prefix</tt></dt>
<dd id="_c67a008c-22c7-dc6d-354a-844c39ecc301"><p id="_97d531f7-10ab-c5c0-03a0-8b2378b469fd">Represents a multiplier for units</p>
</dd>
<dt><tt>UnitSystem</tt></dt>
<dd id="_55631c65-e7db-accf-8e22-f114cac85570"><p id="_bc1d971e-d898-d180-8524-c5125cb68459">Represents a system of units (e.g., SI, non-SI)</p>
</dd>
</dl>

<p id="_f2ea1872-ec5f-93cf-3af2-bc5ef3ba3686">Each class definition specifies the attributes that should be present in the corresponding YAML files.</p>
</clause>

<clause id="_3296aee4-0236-cbce-2fcf-e9a28a09e694" obligation="normative">
<title id="_7b6c4dbf-b7e3-de33-33cf-a90b3c55f5a0">Inheritance hierarchies</title>
<p id="_62517f9c-1289-f10e-ee54-8ff07beb401f">UnitsDB does not use formal inheritance hierarchies, but it does establish conceptual hierarchies through relationships:</p>

<ul id="_1dfc3680-d359-f151-fbd0-1846db13221e"><li><p id="_6fb31a12-276e-1fe6-5f0e-07cfacee27fc">Base dimensions vs. derived dimensions: Derived dimensions are composed of combinations of base dimensions</p>
</li>
<li><p id="_492b3902-7ddc-5b29-23e5-cae0226b45d7">Base quantities vs. derived quantities: Derived quantities reference dimensions that are combinations of base dimensions</p>
</li>
<li><p id="_7bb0aeea-d6eb-8163-2695-74d4d4a34852">Base units vs. derived units: Derived units are composed of combinations of base units</p>
</li>
</ul>

<p id="_88b8043b-6134-5361-a4bb-0d365a94fd84">These hierarchies are reflected in the data structure rather than through formal inheritance mechanisms.</p>
</clause>

<clause id="_87650512-be80-2ce6-fa3d-edce663676f0" obligation="normative">
<title id="_e2b3b342-8832-10cb-2504-4c707d7178a1">Extension points</title>
<p id="_3a95c0ad-ad83-8bf1-c879-a4f2e9290863">The UnitsDB architecture includes several extension points for future development:</p>

<ul id="_444a1d4c-5eef-c9b5-28a9-6669f686ad4c"><li><p id="_dc001168-19f6-51b5-2fd1-4d095c9a30fc">Addition of new dimensions, quantities, units, prefixes, or unit systems</p>
</li>
<li><p id="_ac6db44b-5b5c-05a6-293d-19f8dc957bab">Enhancement of metadata for existing entities</p>
</li>
<li><p id="_f7956f87-09d0-9d07-4767-2a28dc1ff54f">Addition of conversion factors between units with the same dimension</p>
</li>
<li><p id="_0650a086-5b6e-d860-92df-418c9335acc8">Extension of symbol representations to support additional formats</p>
</li>
<li><p id="_57e26d1e-1aac-e08a-5477-a772413e7643">Domain-specific annotations for specialized fields</p>
</li>
</ul>

<p id="_98fbeeb0-ec11-31a2-5856-742575de64d6">These extension points allow UnitsDB to evolve while maintaining backward compatibility.</p>
</clause>

<clause id="_31335dc3-b065-2744-ca6d-3a9229e9d0dc" obligation="normative">
<title id="_199b9773-1fba-7196-3ccc-a31b7bb4154b">Model mapping to YAML</title>
<p id="_dd94be5f-c0dd-e005-0b9b-5d73e55682ec">The lutaml-model class definitions are mapped to YAML structures in the database files.</p>

<p id="_1efeb5fa-4985-d654-74ec-4059ca7f88f1">For example, the <tt>Unit</tt> class defined in lutaml-model:</p>

<sourcecode id="_1d687bab-c3ca-22a8-7190-4f07e26d73b5" lang="lutaml"><body>class Unit {
  attribute id, String {
    definition "Unique identifier for the unit"
  }
  attribute dimension_url, String {
    definition "Reference to the dimension of the unit"
  }
  // Additional attributes...
}</body></sourcecode>


<p id="_2e4e9977-c80b-8168-5b46-679dd0ab9ec8">Maps to YAML entries like:</p>

<sourcecode id="_f204afdd-7ad5-7bb7-e16d-351ea6eeeea1" lang="yaml"><body>NISTu1:
  dimension_url: "#NISTd1"
  short: meter
  # Additional properties...</body></sourcecode>


<p id="_ee94be15-23c5-723e-ba05-58ecc4322e08">This mapping ensures that the YAML files conform to the defined data models while maintaining human readability.</p>
</clause>

<clause id="_ea38aef5-14cb-eb94-aae4-c8e5c5d369cd" obligation="normative">
<title id="_ce55ac19-3028-87eb-eb97-d5a3859131de">Implementation considerations</title>
<p id="_6cfa3bd9-54f1-e97b-554a-361ef712395b">When implementing UnitsDB for specific applications, several architectural considerations are important:</p>

<ul id="_d0e4cd73-d6af-af96-fdab-9f90c77c4bba"><li><p id="_19751700-4ad9-cc58-fa89-66ab7b3b49a6">YAML parsing: Implementations should handle YAML 1.2 syntax correctly</p>
</li>
<li><p id="_9a0b36ce-621e-20c6-3639-d8f9879308bc">Cross-reference resolution: Applications need to resolve references between entities</p>
</li>
<li><p id="_2bd179d0-7bdc-8d3b-e7fd-5e58e876698e">Validation: Implementations should validate entries against the defined models</p>
</li>
<li><p id="_eb582f93-449d-1c2d-2885-20da6e5c5e61">Memory management: Depending on the application, different caching strategies may be appropriate</p>
</li>
<li><p id="_589bca0e-a3e9-8361-08d1-0c1187fec8e3">Query capabilities: Applications might need to support various ways to search and retrieve entities</p>
</li>
</ul>

<p id="_cbd09d15-a806-5cf7-d583-9070e09dcff1">These considerations influence how UnitsDB is integrated into larger systems and applications.</p>
</clause>
</clause>

<clause id="_922b48ae-f9c3-0169-4d4e-af1279cc1b44" obligation="normative">
<title id="_4f990a10-7a00-fd67-4610-5c4c3422c0f3">Unit system</title>
<clause id="_4289587a-d436-dd53-b452-fff037721887" obligation="normative">
<title id="_24abdf30-6d12-8734-45d3-cd1948186a03">General</title>
<p id="_55037980-0e17-ed3f-d864-5725aa64058d">A unit system is a defined set of units.</p>

<p id="_ee9a4a11-9862-9cad-6aa7-0ea3a8de337d">UnitsDB differentiates unit systems in accordance to BIPM guidelines.</p>

<dl id="_e261b1e2-0ed9-73f0-fe3a-71b9caaf1ebf"><dt>SI units</dt>
<dd id="_00bfa1ab-479e-a2c1-04cc-3d450feccfa1"><p id="_4d1e6eca-34dc-6057-5ecd-11411c461cf4">Units defined by the International System of Units (SI) as defined by the CGPM and described by the BIPM. SI units are the international standard for measurement. These are the 7 base units</p>
</dd>
<dt>Units derived from SI units and special</dt>
<dd id="_85cea987-11b7-35e7-0058-a499838ff53f"><p id="_5c3054d7-a67f-6300-2ac6-32d702fe977f">Units that are not part of the SI system but are directly derived from SI units and therefore acceptable for use. Examples include traditionally used units like newton, pascal, joule, watt.</p>
</dd>
<dt>Units derived from SI units but not special</dt>
<dd id="_87c1c2af-a587-b4c3-f262-5f342cad0913"><p id="_b10c9535-8e0f-14fb-d333-5e1441a79403">Units that are not part of the SI system, directly derived from SI units but are usually dimensionless or compound units and not accepted for international use. Examples include ppm, ppb, square meters.</p>
</dd>
<dt>Non-SI units, acceptable for use</dt>
<dd id="_e6f08279-a854-c295-25f8-41b4aaba8b4f"><p id="_0d53791d-c999-2ebe-2d6c-4afa5cfe3c8c">Units that are not part of the SI system but are generally accepted for technical use. These units include imperial units like hour, minute, angstrom, watt hour.</p>
</dd>
<dt>Non-SI units, temporarily acceptable for use</dt>
<dd id="_e2880686-bb9d-efcb-447d-5b151d6811d8"><p id="_eb89bbe7-d0e2-4cad-2db8-652360243d86">Units that are not part of the SI system but are temporarily accepted for use in specific contexts. These units only include “are” and “hectare” for area.</p>
</dd>
<dt>Non-SI units, not acceptable for use</dt>
<dd id="_8e381dfa-caf5-6904-2499-68edbd3ab24d"><p id="_792b8dff-3856-3183-fc92-feeb18a30590">Units that are not part of the SI system but are generally not accepted for technical use. These units include imperial units like foot, inch, mile, metric ton, and pound.</p>
</dd>
<note id="_158d8b1d-674c-fca3-c8ca-59adb84c1e65"><p id="_4c78f8c6-7aa7-bebc-948b-f8b634bca7a8">Prefixes are modifiers that act on units, they do not affect the units’ categorization in unit systems.</p>
</note></dl>


</clause>

<clause id="_3a8d0c38-7083-1170-0f57-27e7e99826e1" obligation="normative">
<title id="_a9cb7616-3c9b-ff85-cdf5-43dacda266ee">Unit system model</title>
<clause id="_4ca43e16-2845-12f6-ee06-365f773dd1a2" obligation="normative">
<title id="_5d66c3e1-b1ee-7bb8-69c0-77d6bea64c4a">Definition</title>
<p id="_7bec76bf-2967-5739-4a23-cdc6b83fb38b">The UnitSystem model is defined in the LutaML data definition language.</p>

<sourcecode id="_c3ba1c14-60b2-3ae8-7c3f-1aaa2233b3c1" lang="lutaml"><body>class UnitSystem {
  attribute id, String {
    definition {
      Unique identifier for the unit system.
    }
  }
  attribute name, String {
    definition {
      Name of the unit system (e.g., SI, non-SI).
    }
  }
  attribute acceptable, Boolean {
    definition {
      Whether the unit system is generally acceptable for use in scientific and
      technical documentation.
    }
  }
}</body></sourcecode>

</clause>

<clause id="_faee74fb-88fd-88e1-9708-ccc299052305" obligation="normative">
<title id="_35387d89-57a2-fbd4-5bd5-18ff439a08fe">Attributes</title>
</clause>

<clause id="_c39592c4-3892-6adb-9a3d-5aefad74830c" obligation="normative">
<title id="_f1ff2d15-c879-4718-5d05-cd3971fb6cd7">id</title>
<p id="_f617fd9f-53ec-e9ed-65ca-ee49af9b2b9c">The <tt>id</tt> field is a unique identifier for the unit system type. It indicates both the name of the system and the category of unit within that system. For example, <tt>SI_base</tt> refers to base units in the SI system.</p>
</clause>

<clause id="_8e0e23bc-11ee-6ca4-05cd-8433be5fe8ef" obligation="normative">
<title id="_d6f531cf-0289-fe2f-d7c8-cf5632342275">name</title>
<p id="_f0caebfd-31ed-d63c-ef25-00b1c7cb0661">The <tt>name</tt> field specifies the overarching unit system, either “SI” or “non-SI”.</p>
</clause>

<clause id="_a5e994f2-3952-8b14-a5e2-01d15a3a338a" obligation="normative">
<title id="_129e8326-63f6-7ce1-c36c-ba85868b9f0d">acceptable</title>
<p id="_28e89695-04c6-27ad-d229-a9722cd3975c">The <tt>acceptable</tt> field is a boolean indicating whether units in this system are generally acceptable for use in scientific and technical documentation according to international standards.</p>
</clause>

<clause id="_0cf1f96f-e923-cd5a-641b-16270d44a3ce" obligation="normative">
<title id="_d421029b-d3f9-bfe7-162d-e694e041ec3d">YAML structure</title>
<p id="_2e14a4ea-d747-9b74-d706-936fa0a24772">The unit system data is stored in the <tt>unit_systems.yaml</tt> file with the following structure.</p>

<example id="_d4e3bcf7-8071-1e1a-b894-ff523f8e3468"><sourcecode id="_236808aa-763f-4bca-7554-7c93ff3d0184" lang="yaml"><body>- id: SI_base
  name: SI
  acceptable: true
- id: SI_derived_special
  name: SI
  acceptable: true
- id: SI_derived_non-special
  name: SI
  acceptable: true
- id: non-SI_acceptable
  name: non-SI
  acceptable: true
- id: non-SI_not_acceptable
  name: non-SI
  acceptable: false</body></sourcecode> </example>
</clause>
</clause>

<clause id="_df61dd80-a3f4-626e-c7df-7729ee994e44" obligation="normative">
<title id="_633730d2-9e06-a45a-b20d-5b5e0e5c948f">Unit system relationship model</title>
<clause id="_7a8de0b9-fcee-ae5a-4cee-7c52ed59b1ba" obligation="normative">
<title id="_0cdaf76f-b31a-1f39-88f7-f3405e1bbead">General</title>
<p id="_674e17e4-0caf-0044-82f0-2341f860e1a8">Unit systems in UnitsDB maintain relationships with other entities in the database, primarily units.</p>
</clause>

<clause id="_30aa02fa-100d-d091-0202-4b56a9c7ba4d" obligation="normative">
<title id="_0b73a5cc-ff56-4ff6-86e2-502415420c02">Definition</title>
<sourcecode id="_2b1ffdc1-90b6-abf8-5303-78e640e3acec" lang="lutaml"><body>class UnitSystemRelationship {
  attribute unit_id, String {
    definition "Reference to the unit"
  }
  attribute unit_system_id, String {
    definition "Reference to the unit system"
  }
}</body></sourcecode>


<p id="_308508b1-6e11-e229-9483-13329d21ed9f">In the UnitsDB structure, each unit is associated with a unit system through the <tt>unit_system</tt> field in the Unit model. This link establishes the context for the unit and provides guidance on its appropriate usage.</p>

<p id="_f7223e3c-f068-7d95-7bee-89e1f2a6d845">For example, a unit like the meter would be associated with the <tt>SI_base</tt> unit system, indicating it is a base unit in the SI system and generally acceptable for use in scientific and technical documentation.</p>
</clause>

<clause id="_1dc32713-7ac7-2183-9354-d869e4fb48d2" obligation="normative">
<title id="_2ee36eef-1557-e0f9-160a-55bc2d7c9853">Attributes</title>
<clause id="_e602c679-9b83-d01c-94ff-695630ed55d6" obligation="normative">
<title id="_073018fa-be72-474e-745a-1fcb186744db">unit_id</title>
<p id="_d55ab783-fe96-9a44-04f0-6bf64a4f2090">The <tt>unit_id</tt> field is a reference to the unit that is associated with the unit system. This field links the unit to its corresponding unit system, allowing for easy identification and categorization.</p>
</clause>

<clause id="_66eae66c-2fc3-c438-d9f2-9bf1590ce021" obligation="normative">
<title id="_7bfee782-e743-532a-a8ba-2066dfda979d">unit_system_id</title>
<p id="_df753acd-40a2-ef3a-7e75-e81af7c1a27c">The <tt>unit_system_id</tt> field is a reference to the unit system that the unit belongs to. This field establishes the relationship between the unit and its unit system, providing context for its usage and interpretation.</p>
</clause>
</clause>

<clause id="_029b4b72-1cea-3970-a8ac-6c425a1ab60e" obligation="normative">
<title id="_7cab47d1-e83a-6db2-b2e3-2f5bb77b9a34">YAML structure</title>
<p id="_1b73e4e4-80ba-b97d-09b1-672b5faf6221">The unit system relationship data is used in the <tt>units.yaml</tt> file with the following structure.</p>

<example id="_ba629fdc-fc83-8c2e-2983-60a75a34a976"><sourcecode id="_f8d7f704-644f-3019-d23a-e9996515cf4f" lang="yaml"><body>- unit_id: NISTu1
  unit_system_id: SI_base
- unit_id: NISTu2
  unit_system_id: SI_base
- unit_id: NISTu3
  unit_system_id: non-SI_acceptable</body></sourcecode> </example>
</clause>
</clause>
</clause>

<clause id="_8002cc9f-8be9-06b4-5e13-1cbbe99c6ad6" obligation="normative">
<title id="_5d57089c-6b56-320c-284f-902337a6db1e">Prefix</title>
<clause id="_9fbb15a7-6584-967e-4cae-85a8f9ae5156" obligation="normative">
<title id="_1d0a0e6e-9129-6d18-fb0a-a14109f5544f">General</title>
<p id="_52b3d5f4-cdca-2a6a-e146-6666974d493e">A prefix is a modifier that, when attached to a unit, multiplies that unit by a specified factor.</p>

<p id="_5aa54688-a943-1861-7e54-554bbc3e2dbc">In UnitsDB, prefixes are used to create multiples and submultiples of units, allowing for the expression of quantities across a wide range of magnitudes.</p>
</clause>

<clause id="_e3e71031-9df6-2a87-ed1c-9acb046dc31b" obligation="normative">
<title id="_82712814-2b0e-d325-db6a-4bb18657a4ef">Prefix model</title>
<clause id="_56ea1616-ba12-8260-0730-bf692caf06b0" obligation="normative">
<title id="_4dd53681-e798-3140-10d3-4a94102bfbf6">Definition</title>
<p id="_c730ce22-9664-c7f2-57d0-21f1db962835">The Prefix model is defined as follows.</p>

<sourcecode id="_caa3fe88-6553-c01d-4f25-a9fec83f6d56" lang="lutaml"><body>class Prefix {
  attribute id, String {
    definition "Unique identifier for the prefix"
  }
  attribute name, String {
    definition "Name of the prefix (e.g., kilo, milli)"
  }
  attribute symbol, PrefixSymbols {
    definition "Symbol representations in different formats"
  }
  attribute base, Integer {
    definition "The base of the exponentiation (10 for SI prefixes, 2 for binary prefixes)"
  }
  attribute power, Integer {
    definition "The power to which the base is raised"
  }
}</body></sourcecode>

</clause>

<clause id="_58752cfe-065b-e737-04b8-c77942b9f7dc" obligation="normative">
<title id="_c7a55b33-d517-fc25-1f7d-9e825e5329da">YAML structure</title>
<p id="_a467181a-90e2-9d70-7035-df59faa153d7">The prefix data is stored in the <tt>prefixes.yaml</tt> file with the following structure:</p>

<sourcecode id="_eee54da8-6918-7884-1a7e-eef15fec9c33" lang="yaml"><body>NISTp10_3:
  name: kilo
  symbol:
    ascii: k
    html: k
    latex: k
    unicode: k
  base: 10
  power: 3

NISTp10_-6:
  name: micro
  symbol:
    ascii: u
    html: "&amp;micro;"
    latex: "$mu$"
    unicode: μ
  base: 10
  power: -6

NISTp2_10:
  name: kibi
  symbol:
    ascii: Ki
    html: Ki
    latex: Ki
    unicode: Ki
  base: 2
  power: 10</body></sourcecode>

</clause>

<clause id="_ebda9d32-f8ca-487a-6b83-3611641dca5f" obligation="normative">
<title id="_9af4de81-c32c-f876-8cc9-592626965fc9">Attributes</title>
<clause id="_3fb0dfaf-fcc5-065c-c409-040aaf3480e6" obligation="normative">
<title id="_38f314cb-48c5-b1ed-b9a8-f4f518fe0a5d">id</title>
<p id="_93296136-c536-16b9-635b-c975ffc0a8cd">The <tt>id</tt> field is a unique identifier for the prefix. The format follows a pattern of “NISTp” followed by the base and power of the prefix, separated by an underscore. For SI prefixes, the format is “NISTp10_X” where X is the power, which can be positive or negative. For binary prefixes, the format is “NISTp2_X”.</p>
</clause>

<clause id="_ea8f8566-1a09-0610-ebe6-bda7b699399d" obligation="normative">
<title id="_dc096076-2b70-467e-1bd0-ada0cfee021a">name</title>
<p id="_1574bb54-7582-147a-c213-abcb8708d0c0">The <tt>name</tt> field contains the name of the prefix, such as “kilo”, “milli”, or “giga”.</p>
</clause>

<clause id="_e80ad30e-ae1e-5166-20e2-99701ead2ccc" obligation="normative">
<title id="_b40e0b4e-1fb8-9431-1fc9-b9ce9352d222">symbol</title>
<p id="_167d1652-e859-d78f-76e5-84ba856fece6">The <tt>symbol</tt> field contains representations of the prefix symbol in different formats using the <tt>PrefixSymbols</tt> model.</p>
</clause>

<clause id="_50a2144f-8824-18c8-0de3-f18242b77ae9" obligation="normative">
<title id="_960bd13e-081b-6903-71e9-f9547f41cfee">base</title>
<p id="_5ae37cf5-965d-0022-2018-a8cf26edc3d2">The <tt>base</tt> field indicates the base of the exponentiation.</p>

<ul id="_7aae02a9-b7c5-64d2-ba83-239662e710f1"><li><p id="_16ea5369-71b4-107a-fa46-923686037396">For SI prefixes, this is always 10.</p>
</li>
<li><p id="_0bd27dfd-6e72-f2f1-4c95-389522c5de17">For binary prefixes, it is 2.</p>
</li>
</ul>
</clause>

<clause id="_b7b7f12b-d060-c817-e3cf-a549cf7bc4de" obligation="normative">
<title id="_be376f29-d050-adf7-57ed-10b2d4ddde7e">power</title>
<p id="_16e75a1d-1d59-d371-18a5-9444d6e9da3a">The <tt>power</tt> field indicates the power to which the base is raised to obtain the multiplier for the prefix.</p>

<p id="_0970a9e5-8e6d-2705-ba54-e65fa4980789">For example, a power of 3 with a base of 10 gives a multiplier of 10<sup>3</sup> = 1000.</p>
</clause>
</clause>
</clause>

<clause id="_7b9cb542-b5c9-20ee-33fe-e5b955a76a65" obligation="normative">
<title id="_889c4c8a-0a70-f0c0-5523-2d4d48fe3676">Prefix symbols model</title>
<clause id="_fdc2e5c2-29c8-ce32-10e3-e9c5b88f9051" obligation="normative">
<title id="_0f1e47f6-7751-b0f5-e73b-5bf6a753a43d">Definition</title>
<sourcecode id="_7943d5a1-4a8a-b36e-e399-2b93345c808c" lang="lutaml"><body>class PrefixSymbols {
  attribute ascii, String {
    definition "ASCII text representation"
  }
  attribute html, String {
    definition "HTML representation (may include HTML entities)"
  }
  attribute mathml, String {
    definition "MathML representation in XML format."
  }
  attribute latex, String {
    definition "LaTeX representation in LaTeX typeset format."
  }
  attribute unicode, String {
    definition "Unicode representation in UTF-8 encoding."
  }
}</body></sourcecode>

</clause>

<clause id="_c4681684-f097-1c62-9240-7d905ebc7d08" obligation="normative">
<title id="_5a013eb1-57fe-4d01-87ab-e589204e7390">Attributes</title>
<clause id="_3c44626d-c2d6-193d-f9ac-b5637695d7e8" obligation="normative">
<title id="_cbabd17e-3b66-b97f-06c5-6b64b84ec323">ascii</title>
<p id="_39c34edd-c4ac-1ef0-08ac-098df63732a8">The <tt>ascii</tt> field contains the ASCII text representation of the prefix symbol. This is the most basic representation and is suitable for plain text environments.</p>
</clause>

<clause id="_92496c7a-bae3-9c24-961f-4ff805a3002e" obligation="normative">
<title id="_ae334894-8a94-35eb-5040-1c413178ad0b">html</title>
<p id="_574189ab-8c10-9410-3415-2c9c8625ff4b">The <tt>html</tt> field contains the HTML representation of the prefix symbol. This may include HTML entities for special characters.</p>
</clause>

<clause id="_671702e2-bd5f-a9ed-1ea2-d3707d03875c" obligation="normative">
<title id="_a6d71d51-c5a7-9200-b467-04c00de36aea">mathml</title>
<p id="_bf1e5e06-fe2f-fbfa-ba6f-9a149dc3ab0c">The <tt>mathml</tt> field contains the MathML representation of the prefix symbol and is a MathML string. This is for use within MathML-supported environments.</p>
</clause>

<clause id="_a4f449eb-a2be-ce11-844f-8e0e33b6bdbd" obligation="normative">
<title id="_d9acef1f-d12a-9f01-361a-c6579358df31">latex</title>
<p id="_ae6e53e9-7130-5544-0037-bbd4dbd52fc9">The <tt>latex</tt> field contains the LaTeX representation of the prefix symbol. This is for use within LaTeX documents or LaTeX-supported environments.</p>
</clause>

<clause id="_2b2afef5-4770-cdbd-0058-b33230545d07" obligation="normative">
<title id="_836e66df-9608-3bb0-6ad0-ef49f01aad5b">unicode</title>
<p id="_3097581b-8427-83bb-6817-11d20aac0b9e">The <tt>unicode</tt> field contains the Unicode representation of the prefix symbol.
This is mainly for use within UnicodeMath or other Unicode-enabled environments.<note id="_fc521ad4-d599-954f-a7e3-525d0a574921"><p id="_247fb694-0754-7efb-eb53-800f5416f9d1">This allows for the representation of characters that may not be available in ASCII or HTML.</p>
</note></p>


</clause>
</clause>
</clause>
</clause>

<clause id="_27c74f66-e47c-b077-7698-d67e8f29119a" obligation="normative">
<title id="_2aea0b1f-efd1-302d-af2e-ea7cd7600e5c">Quantity</title>
<clause id="_cdf05bb5-b1ca-067c-1f56-a4f256bfee2c" obligation="normative">
<title id="_5f4b6e39-1b0d-5578-3593-0f263f988427">General</title>
<p id="_8e0ddabf-45eb-dca1-e7e9-284552f8a006">A quantity is a property of a phenomenon, body, or substance that can be quantified by measurement.</p>

<p id="_4dee42fd-bd96-d955-a1be-0a13028e8588">In UnitsDB, quantities provide the bridge between theoretical dimensions and practical units of measurement.</p>

<p id="_d432afcf-f13b-8999-837d-f742039ec1bc">They represent physical properties like length, mass, time, speed, or energy, which can be measured using specific units.</p>

<p id="_7a8df0fc-58d6-9131-7bb6-2452fbeb77fd">There are two represented types of quantities in UnitsDB.</p>

<dl id="_2970569d-9047-98e0-da19-3b2a35014f85"><dt>Base quantities</dt>
<dd id="_a0f63190-7597-3b14-d9bb-9ed982b54d78"><p id="_c752647e-18f1-89f4-4de7-e8b3022a7fd9">The fundamental quantities that cannot be derived from other quantities. The SI system defines seven base quantities: length, mass, time, electric current, thermodynamic temperature, amount of substance, and luminous intensity.</p>
</dd>
<dt>Dimensionless quantities</dt>
<dd id="_2fb4f6a0-50c3-eaa2-71fe-34a51c4b6f52"><p id="_f7bd2629-efa0-2b51-c151-36498662bcdb">The dimension-independent quantities that are not associated with any physical dimension. These quantities are often used in mathematical or statistical contexts, such as probability, ratios, or pure numbers. While dimensionless quantities do not have a specific dimension, they can still be associated with a unit of measurement for semantic interoperability.</p>
<example id="_7e794833-f490-4f0c-89c2-20a8ea391c6c"><p id="_b4b19cbd-c31a-c53c-e847-149db3b065a3">The ratio of two lengths is dimensionless, but it can be expressed as a quantity as a “ratio for lengths”.</p>
</example>

<example id="_963428ce-abc4-f4b1-eaf9-e5dda533abad"><p id="_f3494e39-1ebb-ef56-7266-d3ac3ba2ad69">The unit ‘parts-per-million’ (ppm) is a unit that measures a quantity that represents a ratio of one part of a substance to one million parts of the total mixture.</p>
</example>
</dd>
<dt>Derived quantities</dt>
<dd id="_7970669f-4f20-d6ec-f2df-0943c6f02884"><p id="_697c4936-ce41-18ce-66b1-b31d9c4dab73">Quantities that are defined through algebraic relationships with other quantities, typically expressed as products of powers of base quantities. They can differ in units depending on their dependencies and can be used to express complex measures in a simplified form.</p>
</dd>
</dl>
</clause>

<clause id="_9b254c81-8ee7-110f-a1dc-f7680583c6e1" obligation="normative">
<title id="_f0771cbd-dcf8-d5bd-daf0-418d72a72027">Quantity model</title>
<clause id="_a3df0d3f-34c5-091b-69b8-6158e046a489" obligation="normative">
<title id="_0b0de949-7a6b-948a-1f98-19e632570649">Definition</title>
<p id="_105a86e4-56c6-f2bb-a539-2f04be85a1af">The Quantity model is defined as follows.</p>

<sourcecode id="_8a207be9-49c5-7ff3-5319-9dd9b75a6074" lang="lutaml"><body>class Quantity {
  attribute id, String {
    definition {
      "Unique identifier for the quantity.
    }
  }
  attribute dimension_url, String {
    definition {
      Reference to the dimension of the quantity.
    }
  }
  attribute quantity_type, QuantityType {
    definition {
      Type of quantity.
    }
  }
  attribute quantity_name, String {
    collection true
    definition {
      Names of the quantity.
    }
  }
  attribute unit_reference, UnitReference {
    collection true
    definition {
      References to units that can measure this quantity
    }
  }
}</body></sourcecode>

</clause>

<clause id="_4e669a93-70d6-8db8-440f-8ced445ed7e8" obligation="normative">
<title id="_8cd47ba8-0e0d-387f-6d00-90260f3ce2d6">YAML structure</title>
<p id="_ad2b5d88-d2fd-0b56-94da-c65c6de4ff39">The quantity data is stored in the <tt>quantities.yaml</tt> file with the following structure:</p>

<sourcecode id="_386a5037-61c2-2cf0-6e3f-0aeb430f16e0" lang="yaml"><body>NISTq1:
  dimension_url: "#NISTd1"
  quantity_type: base
  quantity_name:
  - length
  unit_reference:
  - name: meter
    url: "#NISTu1"
  - name: foot
    url: "#NISTu78"
  - name: inch
    url: "#NISTu8"
  - name: mile
    url: "#NISTu83"
  - name: yard
    url: "#NISTu84"

NISTq12:
  dimension_url: "#NISTd11"
  quantity_type: derived
  quantity_name:
  - velocity
  - speed
  unit_reference:
  - name: meter per second
    url: "#NISTu1.u3e-1/1"
  - name: kilometer per hour
    url: "#NISTu160"
  - name: mile per hour
    url: "#NISTu110"</body></sourcecode>

</clause>

<clause id="_442fa2f0-c5bf-51a2-43c0-b85bfe6d3ac4" obligation="normative">
<title id="_d02b67e3-a1c7-6cf4-eb4d-f5c06bc50f6d">Attributes</title>
<clause id="_0c95595a-e151-1597-1bae-b8f1120579e8" obligation="normative">
<title id="_7974e884-a6aa-a0d3-2e24-1042b2f15a43">id</title>
<p id="_ae6be378-c9b8-a18a-d8e2-e016116ad5fb">The <tt>id</tt> field is a unique identifier for the quantity, typically in the format <tt>NISTqX</tt> where X is a number.</p>

<p id="_4db9d90c-f922-7cf8-4f2f-4ce93f20738f">Each quantity has a unique ID that is used for cross-referencing throughout the UnitsDB system.</p>
</clause>

<clause id="_3c72e547-0c55-79b5-324d-f6d60a47c72a" obligation="normative">
<title id="_c22f412b-f7af-5c2b-a9d9-1e618a0126b3">dimension_url</title>
<p id="_1ba12013-43ea-c29e-2dd8-62aa2cb9cb13">The <tt>dimension_url</tt> field contains a reference to the dimension associated with the quantity. This reference establishes the dimensional characteristics of the quantity and links it to the mathematical representation in the dimension model.</p>
</clause>

<clause id="_73125479-d554-348b-d7a1-3466ac9be8de" obligation="normative">
<title id="_7a868aed-ec9f-01be-2af4-4fab335aea34">quantity_type</title>
<p id="_36a874be-a8cd-f6ce-4ed2-ed433c9ecabc">The <tt>quantity_type</tt> field indicates whether the quantity is a base quantity or a derived quantity, using the  <tt>QuantityType</tt> enumeration.</p>
</clause>

<clause id="_012cd179-afff-7b08-5b2e-3bab389acb8c" obligation="normative">
<title id="_5898b50e-5f36-3815-6043-cb232ac4e83e">quantity_name</title>
<p id="_4f9041f6-605f-571e-8f18-5531d8cf3b40">The <tt>quantity_name</tt> field is a collection of strings that each represents a name for the quantity.</p>

<p id="_9551c0eb-d7f2-8a00-26f0-be0dd7a67f57">The first name in the array is the primary name, and any additional names are alternative names or synonyms.</p>

<example id="_6d0fe991-e98e-f221-11d1-accd7efd650d"><p id="_252f6a99-39cc-821b-3666-1a7dff481934">“velocity” might have the synonym “speed”.</p>
</example>
</clause>

<clause id="_2f8c7bca-d7a9-946e-ac94-5cbd6932b03d" obligation="normative">
<title id="_72cc29b0-11a4-8820-ce16-92202da78b60">unit_reference</title>
<p id="_9f6e5bb5-16af-5ee5-248d-950b62e49a03">The <tt>unit_reference</tt> field is a collection of UnitReference objects that can be used to measure the quantity.</p>
</clause>
</clause>
</clause>

<clause id="_8c788be0-08fe-2378-96c2-4527ccec94ce" obligation="normative">
<title id="_49a1affe-774b-e27c-6d94-cf17c6e128d0">Quantity type model</title>
<clause id="_610c6d33-c36c-45f3-9a82-ccae01c0278b" obligation="normative">
<title id="_8553567d-a881-1096-1744-72757d052f70">General</title>
<p id="_0de914e7-3a8f-6bfa-fcfb-df13e36e4b7a">UnitsDB classifies quantities into different types based on their role in the system of physical quantities.</p>
</clause>

<clause id="_9a1c17f3-a589-a9a5-aab0-087ecaf01118" obligation="normative">
<title id="_49f74210-c11c-5258-a497-4d0087f5c939">Definition</title>
<sourcecode id="_eed0c6a2-ef81-3550-5256-e7728980cd20" lang="lutaml"><body>enum QuantityType {
  base {
    definition "Base quantity"
  }
  derived {
    definition "Derived quantity"
  }
}</body></sourcecode>

</clause>

<clause id="_1cd09a92-8bcf-ee7b-e851-50fb61de9f16" obligation="normative">
<title id="_33811924-40de-5e99-38cc-8240675f8d5e">Enumerated values</title>
<clause id="_3d330819-dc50-0424-55a6-73022b1f9bf5" obligation="normative">
<title id="_35c52721-1592-a7fd-e419-e7fb8f8a3d95"><tt>base</tt></title>
<p id="_34953dac-df07-0828-8159-142d2876e863">Base quantities are the fundamental physical quantities that cannot be derived from other quantities. They are defined independently and serve as the foundation for all other quantities.</p>

<p id="_ac47ef65-d6b0-b8b3-ccf4-25c6a734bc89">The seven base quantities in the SI system form the foundation of all physical
measurements, and are currently defined in the UnitsDB.<note id="_e3c1bca9-6b84-1584-a3b4-0ec03d6fc519"><p id="_5ec5ee55-fb85-d3b1-78cf-b59cbbbcbecf">These quantity entries are protected entries in the UnitsDB.</p>
</note></p>



<dl id="_30e87367-7807-03e2-55ac-887703184873"><dt>(NISTq1) Length, (NISTq48) Distance</dt>
<dd id="_a379e061-d4f3-993e-3783-88dd52cf2cf5"><p id="_7ab87122-4dfe-bd7f-0ec1-9a8c7137f66b">The measurement of distance or dimension in one direction.</p>
</dd>
<dt>(NISTq2) Mass</dt>
<dd id="_15b04ca3-1cae-09bf-5f9b-9e4cd3c008f6"><p id="_896e39fd-d11e-f016-3cda-6cbfebb20f74">The measurement of the amount of matter in an object.</p>
</dd>
<dt>(NISTq3) Time/Duration</dt>
<dd id="_953b8ddc-d272-b40c-2e7b-0bde0e5fcefc"><p id="_13788517-e63e-2ca8-1df4-0643a855c426">The measurement of duration or sequential events.</p>
</dd>
<dt>(NISTq4) Electric current</dt>
<dd id="_1d73f7d3-b842-5bde-f764-e244943ae606"><p id="_03d8a336-7efc-4e23-9b96-a77fcb1bd100">The flow of electric charge.</p>
</dd>
<dt>(NISTq5) Thermodynamic temperature</dt>
<dd id="_0b9fee77-ab5a-9dbb-1fa3-b9e5efcb0160"><p id="_0d85a383-9fc1-c6ac-e3fb-f74453344bf6">The measurement of thermal energy.</p>
</dd>
<dt>(NISTq6) Amount of substance</dt>
<dd id="_ab204085-de04-f3a0-1bea-041fee873fc3"><p id="_57289237-b3f2-1ff3-aecf-441723d81c32">The number of entities (atoms, molecules, ions, etc.) in a system.</p>
</dd>
<dt>(NISTq7) Luminous intensity</dt>
<dd id="_0b0a09ea-289e-457d-82e6-b38c59da2a94"><p id="_76a24823-c7f5-9a61-bc56-044e9275f56d">The measure of the power of light in a given direction.</p>
</dd>
</dl>
</clause>

<clause id="_1449386a-8135-bc9a-0ca9-5813354f12b9" obligation="normative">
<title id="_3d3697c2-634c-4cbf-0557-e211f0e3d218"><tt>derived</tt></title>
<p id="_54869a7c-0d17-5a48-66b7-e417988e61d8">A derived quantity is a physical quantity that is defined in terms of base quantities. Derived quantities are expressed as products of powers of base quantities, and they can be represented in terms of their dimensional relationships.</p>

<p id="_9b3223d4-dc59-32ee-3a83-0b29cd274e76">Derived quantities can be expressed in terms of base quantities using dimensional analysis.</p>

<p id="_8889558e-e996-632b-3e7a-af80230ce066">For example, velocity is a derived quantity that can be expressed as length divided by time (L/T). Other examples of derived quantities include:</p>

<ul id="_8e0f6042-8e3d-9df8-890d-70024e4987d0"><li><p id="_8a7e21fc-ed04-2754-49ea-ee5d7c8ed483">acceleration (NISTq13), which is expressed as length divided by time squared (L/T²)</p>
</li>
<li><p id="_146da0f1-d2c8-90f8-bada-3b54bbb691bb">force (NISTq14), which is expressed as mass times acceleration (M·L/T²)</p>
</li>
<li><p id="_49dde7ba-bbdf-9091-4203-a9618ec7e6a6">pressure (NISTq15), which is expressed as force divided by area (M·L/T²·L²)</p>
</li>
</ul>
</clause>
</clause>
</clause>

<clause id="_83ff99fb-56b5-3f8e-f026-54ac2795f3d1" obligation="normative">
<title id="_eef1b313-8439-e124-1e0e-3120866de072">Unit reference model</title>
<clause id="_e1ada89b-cf25-8411-cf16-d96c1a19d1d7" obligation="normative">
<title id="_b5cf104e-2c12-a97e-7288-af591aede589">General</title>
<p id="_06914667-a002-fe86-fd2e-b3b03ba0d680">A quantity can be measured by multiple units, and this relationship is captured in the <tt>unit_reference</tt> field.</p>

<p id="_04fd0201-c1cd-163f-d0be-588073d561b3">This many-to-many relationship allows:</p>

<ul id="_a0664445-644a-fdab-1dfb-60f90d8945c5"><li><p id="_38fa4076-8dde-eb19-8250-0026302ed71e">Selection of appropriate units for a given quantity</p>
</li>
<li><p id="_b53ee22c-ddea-0ca0-999c-e1639562ef3c">Identification of all quantities that can be measured with a particular unit</p>
</li>
<li><p id="_e95fef13-2861-d5b7-7776-41a53fd1be96">Conversion between different units for the same quantity</p>
</li>
</ul>

<p id="_4e7d7148-29a6-31e9-174c-294c8feacaed">For example, the quantity “length” (NISTq1) can be measured using units such as meter, foot, inch, mile, and yard.</p>
</clause>

<clause id="_6b632056-6b68-4b36-d1a6-887ae0ccfe2f" obligation="normative">
<title id="_e73a858f-ebba-cab8-b1c1-cdbb5258ef67">Definition</title>
<sourcecode id="_1cd0cc5f-27f8-12a2-296d-ef786e8e4575" lang="lutaml"><body>class UnitReference {
  attribute name, String {
    definition "Name of the unit"
  }

  attribute url, String {
    definition "Reference to the unit"
  }
}</body></sourcecode>

</clause>

<clause id="_7a968967-2479-731c-aca9-1cef183669dd" obligation="normative">
<title id="_d84d804e-a1f3-6d9d-a415-b7fe1b8fb68d">Attributes</title>
<clause id="_429082fa-7c39-a4d1-c8c3-4337977e468a" obligation="normative">
<title id="_f6d18a31-2b26-e2f3-630d-7ec0d60b4bfd">name</title>
<p id="_b18f0511-f05a-70d1-2c8c-7a09937c6dee">The <tt>name</tt> field is a string that represents the name of the unit that can measure the quantity.</p>

<p id="_e4349fb6-8b77-256b-50e0-06b63cd55ff7">This field is optional</p>
</clause>

<clause id="_b554e242-de3c-0e6d-887e-3a5e294dfe5b" obligation="normative">
<title id="_f5c42573-55bb-5c48-1bbe-dd99caa5bfe6">url</title>
<p id="_3b9d10fc-8122-1802-19da-d7bbe08a4e4f">The <tt>url</tt> field is a string that contains a reference to the unit in the UnitsDB system.</p>
</clause>
</clause>
</clause>
</clause>

<clause id="_4465bb0b-3ef4-5261-b45d-53ae6fff921c" obligation="normative">
<title id="_49631d23-123c-f0b9-0ce2-741b124431a1">Dimension</title>
<clause id="_94b79b58-133e-f2a2-c6a0-dad9cbfed9c0" obligation="normative">
<title id="_d0fe7de5-6e1e-b142-ea53-7c3704ee5df1">General</title>
<p id="_9593d096-bc5e-c452-7137-e7d0d07a648e">A dimension is a physical quantity that can be measured.</p>

<p id="_6016e1b2-26c3-a133-e418-ba07532195e0">According to the SI Brochure, a dimension is defined as “a physical quantity that can be expressed in terms of base quantities.” Dimensions are fundamental to the system of units and provide a framework for understanding and comparing different physical properties.</p>

<p id="_fc13e7fb-d09a-7781-d907-bc396e656301">The SI standard defines the following dimensions and corresponding dimension symbols:</p>

<ul id="_22ea4231-1456-b27a-e43c-12ad98e75fd5"><li><p id="_a30d04c6-6997-093a-c98b-279b203fc2ad">time (T)</p>
</li>
<li><p id="_03790b80-d4b7-78b3-811d-d6adf562fefb">length (L)</p>
</li>
<li><p id="_372f18c6-524a-10f3-29d4-7c9026d9f9b9">mass (M)</p>
</li>
<li><p id="_d1bb328a-e03e-e34f-1684-87796315cbc4">electric current (I)</p>
</li>
<li><p id="_cd36fab1-6538-c994-5d7e-6f3b07439090">absolute temperature (Θ)</p>
</li>
<li><p id="_2fc0a9c9-17eb-3206-454f-925beff2dad7">amount of substance (N)</p>
</li>
<li><p id="_9151a76a-997f-0033-22f0-f89c60ac7cbf">luminous intensity (J).</p>
</li>
</ul>

<p id="_215a0200-996e-f5ab-a136-cc75313ba6df">In UnitsDB, dimensions are represented as mathematical combinations of base dimensions, using the same approach as dimensional analysis in physics.</p>
</clause>

<clause id="_7e0daec3-cee9-d0f0-2efb-85ad454b0439" obligation="normative">
<title id="_ef9fc03d-b82a-0b91-275c-0ec31b49fc1b">Dimension model</title>
<clause id="_e7d4316b-df93-d856-19d3-6ae17751422e" obligation="normative">
<title id="_31403c51-70d3-cab5-b9ef-6159c0f743c7">Definition</title>
<p id="_8dda69f5-9365-f936-a5d2-1ee1e231d431">The Dimension model is defined as follows.</p>

<sourcecode id="_28f6fc30-3e00-484e-e254-27c3b6c15c0b" lang="lutaml"><body>class Dimension {
  attribute id, String {
    definition {
      Unique identifier for the dimension
    }
  }

  attribute dimensionless, Boolean {
    definition {
      Whether the dimension is dimensionless. A dimensionless dimension
      does not have any associated dimension components in `components`.
    }
  }

  attribute components, DimensionComponent {
    collection true
    definition {
      Components of the dimension, including base quantities and their powers.
      Not applicable for dimensionless quantities.
    }
  }
}</body></sourcecode>

</clause>

<clause id="_9610fb47-6caa-bf05-91fc-eeed2c78545d" obligation="normative">
<title id="_8686bf6d-48c8-3918-9cab-9772d38297b4">YAML structure</title>
<p id="_2d86962b-ca7a-a786-5674-8e27f867c04b">The dimension data is stored in the <tt>dimensions.yaml</tt> file with the following structure:</p>

<sourcecode id="_611cff09-79c6-1394-48e6-ed9be8dd878c" lang="yaml"><body>NISTd1:
  length:
    powerNumerator: 1
    symbol: L
    dim_symbols:
    - id: dim_L
      ascii: L
      html: "&amp;#x1D5AB;"
      mathml: "&lt;mi mathvariant='sans-serif'&gt;L&lt;/mi&gt;"
      latex: "\\ensuremath{\\mathsf{L}}"
      unicode: "\U0001D5AB"
NISTd12:
  length:
    powerNumerator: 1
    symbol: L
  mass:
    powerNumerator: 1
    symbol: M
  time:
    powerNumerator: -2
    symbol: T
NISTd67:
  dimensionless: true</body></sourcecode>

</clause>

<clause id="_5a190e8e-072e-cedd-d172-e75153302235" obligation="normative">
<title id="_b7842ed4-11a1-7130-62d9-50722b54feea">Attributes</title>
<clause id="_7d2e1c49-cc1e-b28f-7de6-34ba9060ef02" obligation="normative">
<title id="_9d537d7a-9e52-f64e-311c-56a8f3340eee">id</title>
<p id="_6e05301a-895b-3594-7a88-bef21042b68f">The <tt>id</tt> field is a unique identifier for the dimension, typically in the format <tt>NISTdX</tt> where X is a number. Each dimension has a unique ID that is used for cross-referencing throughout the UnitsDB system.</p>
</clause>

<clause id="_07c37a64-cc35-5ad6-cc42-1af694bb126b" obligation="normative">
<title id="_4cb5fa9f-a5dc-0072-0c76-ca8ad646b4ba">dimensionless</title>
<p id="_682af57e-bcaf-01ad-dbaa-589ba2accc86">The <tt>dimensionless</tt> field is a boolean that indicates whether the dimension is dimensionless (true) or has a physical dimension (false or not present). Dimensionless quantities are pure numbers without units, such as ratios, angles, and counts.</p>
</clause>

<clause id="_a857a639-242f-2ef9-525e-23ced9a9755b" obligation="normative">
<title id="_5c441336-81e9-a2f4-6db8-297a0073408d">dimension components</title>
<p id="_9a30894e-a327-d3fd-46df-ac301ee9a145">Each dimension is composed of one or more base dimension components represented as a DimensionComponent object.</p>

<p id="_7c299a80-b458-1bc4-fece-907ebd0d53d3">Each dimension can only have a maximum of one base dimension component of each type of the 7 base dimensions.</p>
</clause>
</clause>
</clause>

<clause id="_0ea97e7f-a317-fcdb-e77c-23d3a806123b" obligation="normative">
<title id="_1ca109ba-e690-cabd-6486-36781a45b4c9">Dimension component model</title>
<clause id="_7c37d359-7d5f-67d8-970f-9bf85e08eddb" obligation="normative">
<title id="_2fae317f-b6cd-1744-6b31-8f83353b0bac">General</title>
<p id="_6e5990e3-8936-a590-0b5f-25f0423f7c04">A dimension component represents a base quantity and its exponent (power) in the dimension.</p>

<p id="_a8b5e6e4-2f76-319e-4330-61f91b3ae7e1">The seven base quantities in SI are:</p>

<ul id="_de1a8868-d144-6de0-a6b7-a703b2147191"><li><p id="_54af3101-695f-a2cf-e84c-d451ec8ca341">(NISTq1) length</p>
</li>
<li><p id="_bdb45459-bfed-552e-4fd8-120b7985ec82">(NISTq2) mass</p>
</li>
<li><p id="_9ff56c58-c1d3-a396-8d54-712d85e47f1f">(NISTq3) time</p>
</li>
<li><p id="_56f2c906-bd49-f52a-5267-0c940a2d71d5">(NISTq4) electric current</p>
</li>
<li><p id="_24ffc7b1-35a2-f60e-eb24-43e126e48712">(NISTq5) thermodynamic temperature</p>
</li>
<li><p id="_b6ca702a-5979-b53b-7e76-0fa06d02c559">(NISTq6) amount of substance</p>
</li>
<li><p id="_e9bdb157-43bd-d491-575f-bb0a792e7f3d">(NISTq7) luminous intensity</p>
</li>
</ul>
</clause>

<clause id="_261680dc-7be0-116e-8266-59bb495f785f" obligation="normative">
<title id="_addbdceb-c002-8517-3498-e0c84b791b52">Definition</title>
<sourcecode id="_0fbf8852-98e3-1f88-ee3a-54fa3084ff6d" lang="lutaml"><body>class DimensionComponent {
  attribute base_dimension, BaseDimensionEnum {
    definition {
      The base dimension represented by this component.
    }
  }

  attribute power_numerator, Integer {
    definition "The exponent (power) of the base quantity in the dimension"
  }

  attribute symbol, String {
    definition "The symbol used to represent the base quantity in dimensional formulas"
  }

  attribute dim_symbols, DimensionSymbol {
    collection true
    definition "Symbol representations in different formats"
  }
}</body></sourcecode>

</clause>

<clause id="_9caf433f-4c19-1aaf-e911-4963eb1e3bb3" obligation="normative">
<title id="_22da33ef-9a7e-a05f-3fe9-e1363c7fbf70">Attributes</title>
<clause id="_3a852ea7-04cd-14eb-5a70-59a6d935fad5" obligation="normative">
<title id="_f89b4ab2-208d-72fa-68ec-f957ea943af1">base_dimension</title>
<p id="_6b18b93d-783f-c3f0-0109-0bb234d4b7ad">The <tt>base_dimension</tt> field is an enumeration that specifies the base dimension represented by this component, with possible values listed in the <tt>BaseDimensionEnum</tt> model.</p>
</clause>

<clause id="_6049ad9d-1373-fde0-6ac4-be6ee1a98eab" obligation="normative">
<title id="_3f289343-990c-9654-4c3a-c9a3fb949bd5">power_numerator</title>
<p id="_4b585164-969e-c8ff-7e0e-d9fabb7ba259">The <tt>power_numerator</tt> field is an integer that represents the exponent (power) of the base quantity in the dimension. This indicates how many times the base dimension is multiplied in the dimension formula.</p>

<example id="_0b4a1705-4300-0ce6-cbdc-bdbf4396f303"><p id="_23d38fb6-d08e-1db4-9864-e06bf8feeba2">A power of 2 indicates that the base dimension is squared.</p>
</example>

<example id="_2b0f835a-9190-d7e2-cb05-e8f4174fcfee"><p id="_13c4cb0c-cf1b-b3ed-fe6b-4bf79a9c3b20">For a dimension with a power of -1, it indicates the reciprocal of the base dimension.</p>
</example>
</clause>

<clause id="_78ca8f69-9fe4-a0fa-2f01-307fded49806" obligation="normative">
<title id="_53cfacbe-4aa0-2626-3a76-60bf9b11a81e">symbol</title>
<p id="_f98cf7c4-5e40-0c5a-2b73-6ed7af507611">The <tt>symbol</tt> field represents a general notation used for the dimension in various contexts.</p>

<example id="_ff5f4962-9136-ba07-a502-9f262e615ff0"><p id="_c452b0a8-b2f6-3c40-53c1-17c6160254ac">For a dimension expressed with a power of 0, it indicates that the dimension is dimensionless.</p>
</example>
</clause>

<clause id="_b7e8ff3e-f19a-9da2-0c4f-0a1435a09ce4" obligation="normative">
<title id="_bb01983d-2330-82aa-955e-c3756f046c70">dim_symbols</title>
<p id="_a3163b8a-119b-85c4-032d-53388de79a8d">The <tt>dim_symbols</tt> field is a collection of <tt>DimensionSymbol</tt> objects that represent the symbol representations of the dimension in different formats, in the  <tt>DimensionSymbol</tt> model.</p>
</clause>
</clause>
</clause>

<clause id="_d712ad97-5c2c-8800-a77d-cce9a8d7d6d5" obligation="normative">
<title id="_450018e3-ceae-520b-26f7-708a07b3671b">Base dimension enumeration</title>
<clause id="_47ace42a-665c-878a-53a2-8b7ab0b4c524" obligation="normative">
<title id="_9b785778-77fa-acb6-6409-40cf8f7f5522">General</title>
<p id="_3845703c-3d7d-a89f-8583-590e9fe16e61">The <tt>BaseDimensionEnum</tt> model defines the enumeration of base dimensions according to the SI system. Each base dimension is represented by a unique identifier and has a corresponding definition.</p>
</clause>

<clause id="_1454200e-13f4-47be-da55-dca86e6969d1" obligation="normative">
<title id="_d33fa2bf-df5a-c4a1-5ad6-e9024cb0e678">Definition</title>
<sourcecode id="_b63e4572-f94f-e5bc-7936-e2fb1f7dda07" lang="lutaml"><body>class BaseDimensionEnum {
  definition {
    Enumeration of base dimensions.
  }

  value length {
    definition {
      The base dimension of length
    }
  }
  value mass {
    definition {
      The base dimension of mass
    }
  }
  value time {
    definition {
      The base dimension of time
    }
  }
  value electric_current {
    definition {
      The base dimension of electric current
    }
  }
  value thermodynamic_temperature {
    definition {
      The base dimension of thermodynamic temperature
    }
  }
  value amount_of_substance {
    definition {
      The base dimension of amount of substance
    }
  }
  value luminous_intensity {
    definition {
      The base dimension of luminous intensity
    }
  }

  value plane_angle {
    definition {
      The base dimension of the dimensionless plane angle. This is a special
      case that is not a base dimension in the SI system but is often treated as
      such in dimensional analysis.
    }
  }
}</body></sourcecode>

</clause>

<clause id="_ae0003a4-6f90-8994-eb55-6fe8c9df137e" obligation="normative">
<title id="_8ab1aa51-2492-6bdf-5fab-a2f1e9825217">Enumerated values</title>
<clause id="_d5e72293-2314-4e2e-61f0-77d43656ddd7" obligation="normative">
<title id="_09322e66-408c-9312-69c1-611f8af6ae2b">length</title>
<p id="_43127b47-6ae7-5c9b-f6b6-c1b7be2be4c0">The <tt>length</tt> base dimension represents the physical quantity of length.</p>
</clause>

<clause id="_62ab4512-49bd-9d17-6861-589d4c8b5371" obligation="normative">
<title id="_20625b16-b349-d855-0231-ad158d9eb70b">mass</title>
<p id="_2fefee01-05c8-b9e0-9686-1a011fa4b300">The <tt>mass</tt> base dimension represents the physical quantity of mass.</p>
</clause>

<clause id="_76c265ab-b1f5-63d7-1b27-117be9e43c91" obligation="normative">
<title id="_6922cb0f-1794-2b39-10af-7d5e6b46e660">time</title>
<p id="_393829c7-d64e-fd38-1e53-4531d9ed7ec3">The <tt>time</tt> base dimension represents the physical quantity of time.</p>
</clause>

<clause id="_7096c29d-31f0-65ed-d130-89e6d7a11c5f" obligation="normative">
<title id="_05091a54-37c1-14f0-e60e-bc5175252518">electric_current</title>
<p id="_1ad50d82-3566-03af-056c-4b5b934c87d0">The <tt>electric_current</tt> base dimension represents the physical quantity of electric current.</p>
</clause>

<clause id="_068d5131-6c9a-9413-fb52-f26b479c5e58" obligation="normative">
<title id="_2d5ec9be-cac7-f175-d0f8-e8064c48eda9">thermodynamic_temperature</title>
<p id="_e16e8897-3ec9-2887-b2bd-b5a5cce46957">The <tt>thermodynamic_temperature</tt> base dimension represents the physical quantity of thermodynamic temperature.</p>
</clause>

<clause id="_ddbda39e-2234-01af-4d58-cba32ff8f14c" obligation="normative">
<title id="_c6efae06-35d1-e71c-97b6-73dde0b0b3a9">amount_of_substance</title>
<p id="_fe66baf1-b619-72ad-73e7-00be1662b1c6">The <tt>amount_of_substance</tt> base dimension represents the physical quantity of the amount of substance.</p>
</clause>

<clause id="_e0086afa-ce8b-7259-1f86-b1c9eb5a591f" obligation="normative">
<title id="_e223d3ab-ab10-2701-3a55-4075d2a84fd1">luminous_intensity</title>
<p id="_ab9d3846-a90c-9b0c-d247-0b38655d9476">The <tt>luminous_intensity</tt> base dimension represents the physical quantity of luminous intensity.</p>
</clause>

<clause id="_dc29407b-f3b2-9197-3306-f1057ca431fa" obligation="normative">
<title id="_3a23683e-d481-1440-9471-6aee89eb94b7">plane_angle</title>
<p id="_d6cb7c83-341b-f522-daa2-b64a07d27d93">The <tt>plane_angle</tt> base dimension represents the physical quantity of a plane angle. This is a special case that is not a base dimension in the SI system but is often treated as such in dimensional analysis.</p>
</clause>
</clause>
</clause>

<clause id="_c5763361-8365-1b5c-e63f-0789a389a2bb" obligation="normative">
<title id="_ee69342e-8ca7-4cde-66fc-1ab6e2f8db4c">Dimension representation symbol model</title>
<clause id="_e815a2ba-1da1-b54e-2cd4-856a2a221cdb" obligation="normative">
<title id="_8193d352-bc09-7cf1-aeac-9f18ab6db505">General</title>
<p id="_ed9c6850-c857-da56-c5e7-5e04a99e8010">The dimension representation symbols model defines the various symbol representations for a dimension. These symbols are used in different contexts, such as mathematical expressions, HTML rendering, and LaTeX typesetting.</p>

<p id="_69030827-6077-b467-e7e6-7f3f7c56fd86">This model is only used for base dimensions defined in the <tt>BaseDimensionEnum</tt> model.<note id="_8dd49c65-f802-1ebc-66c0-061288cf58e0"><p id="_348aa06e-1f8d-5c15-ff1d-bcf21dbaceef">Only base dimensions have officially assigned dimension symbols by the SI System.</p>
</note></p>


</clause>

<clause id="_90ce4cf0-0a58-ec70-9708-e6d4687c2e37" obligation="normative">
<title id="_19326d97-0bb7-0ea3-c70e-56c64f5cc055">Definition</title>
<sourcecode id="_8e576879-3938-2a95-2cad-7177f3c190dd" lang="lutaml"><body>class DimensionSymbol {
  attribute id, String {
    definition "Unique identifier for the symbol representation"
  }

  attribute ascii, String {
    definition "ASCII text representation"
  }

  attribute html, String {
    definition "HTML representation (may include HTML entities)"
  }

  attribute mathml, String {
    definition "MathML representation in XML format."
  }

  attribute latex, String {
    definition "LaTeX representation in LaTeX typeset format."
  }

  attribute unicode, String {
    definition "Unicode representation in UTF-8 encoding."
  }
}</body></sourcecode>

</clause>

<clause id="_6f0bb3ce-0186-546a-5900-d3c3bbb9853e" obligation="normative">
<title id="_207ef2a7-d877-ce7d-eb3f-8d54ca714bbf">Attributes</title>
<clause id="_602ef65d-497f-01d4-52ae-f75bc84807e3" obligation="normative">
<title id="_ddcc1d61-c28f-2517-341d-753a10aed8bf">id</title>
<p id="_9198cf1f-1d70-84e5-0c44-793d27faaaf9">The <tt>id</tt> field is a unique identifier for the symbol representation.</p>
</clause>

<clause id="_ff8746c3-a444-9718-dc55-22ad3b6d7497" obligation="normative">
<title id="_139ec044-7b4f-449e-5aea-4f7fef448a27">ascii</title>
<p id="_4462aad0-d23d-24f0-e131-7cf897751bc0">The <tt>ascii</tt> field contains the ASCII text representation of the symbol. This is the most basic representation and is suitable for plain text environments.</p>
</clause>

<clause id="_9b188dbc-a2c1-5b5c-d358-3eec71e01609" obligation="normative">
<title id="_7ce7dae7-28a8-bf65-82e5-a48987e704a5">html</title>
<p id="_6ba55e6c-ee3b-4e3c-84e6-e32dc8d29201">The <tt>html</tt> field contains the HTML representation of the symbol. This may include HTML entities for special characters.</p>
</clause>

<clause id="_a20026a6-19d4-02f6-aed0-4b262b3d9596" obligation="normative">
<title id="_db62a945-ba5d-1f10-8454-b31db6ef7ef4">mathml</title>
<p id="_e97837d2-86b4-443f-1486-8ef3fba27f3c">The <tt>mathml</tt> field contains the MathML representation of the symbol. This is an XML-based markup language for representing mathematical notations.</p>
</clause>

<clause id="_b5b8b23b-513f-5f36-5f7a-e8dd2b5cd24b" obligation="normative">
<title id="_7b4b1756-152c-a1c0-6dc9-227b497ffca9">latex</title>
<p id="_b58a8e2a-bfd6-f9a4-d2cd-d93b89f4f7ab">The <tt>latex</tt> field contains the LaTeX representation of the symbol.</p>
</clause>

<clause id="_65a20bd3-fe1a-4bc0-71f8-ed8d4277ac9f" obligation="normative">
<title id="_d60a5745-4336-dbd0-3145-ef805214d29d">unicode</title>
<p id="_2b5b45cd-2fb9-e426-63e2-cf8bdae01fe8">The <tt>unicode</tt> field contains the Unicode representation of the symbol.</p>
</clause>
</clause>

<clause id="_244ce838-7d45-d57d-a190-cdac1920248f" obligation="normative">
<title id="_b423415b-7d03-0a63-926f-3daeaba756b2">YAML structure</title>
<p id="_664bc760-631f-3869-b669-10f4a8b40f51">The dimension representation symbols data is stored in the <tt>dimensions.yaml</tt> file with the following structure:</p>

<example id="_fe049c2d-3388-bacc-b1e1-ea1dac3064b1"><sourcecode id="_34cc72df-898e-1284-7349-6a6bde6fc041" lang="yaml"><body>id: dim_L
ascii: L
html: "&amp;#x1D5AB;"
mathml: "&lt;mi mathvariant='sans-serif'&gt;L&lt;/mi&gt;"
latex: "\\ensuremath{\\mathsf{L}}"
unicode: "\U0001D5AB"</body></sourcecode> </example>
</clause>
</clause>
</clause>

<clause id="_d1d1d9e9-a3ff-b9c8-4305-c6b58a43b5a4" obligation="normative">
<title id="_5ffc4efc-b0cd-c817-a796-5f89742e4105">Unit</title>
<clause id="_852157bc-ad57-2861-d3f9-e3c8a2260601" obligation="normative">
<title id="_2bf8c7a5-d59c-d84f-43f1-9875b6982d37">Unit model</title>
<clause id="_0622294d-588d-154b-30c4-2d92f2810153" obligation="normative">
<title id="_1226c701-de0a-553a-413a-1c58f1e882c5">General</title>
<p id="_8f1b4ca1-0826-db1e-8160-348f1eeefd6e">A unit is a reference quantity adopted by convention with which other quantities of the same kind can be compared to express their value.</p>

<p id="_77593010-b3c9-c25b-ddbf-48db35ee226e">In UnitsDB, units are organized according to their system (SI, non-SI), dimensionality, and relationships to other units.</p>
</clause>

<clause id="_1184b781-10f6-45c2-e123-23e3519eb9aa" obligation="normative">
<title id="_c15e3b4d-0040-0c4a-8bdc-cf52d56af596">Definition</title>
<p id="_41574681-e9ae-b305-b048-5f74347c0609">The Unit model is defined as follows.</p>

<sourcecode id="_6c427ee3-e32a-9fc8-b709-bf8483e63927" lang="lutaml"><body>class Unit {
  attribute id, String {
    definition {
      Unique identifier for the unit.

      NOTE: Currently this is in the pattern `NISTuX` where X is a number.
    }
  }
  attribute short_name, String {
    definition {
      Short name for the unit. This is a unique identifier for the unit.
    }
  }
  attribute root, Boolean {
    definition {
      Whether the unit can be used as a root unit to create derived units.
    }
  }
  attribute prefixed, Boolean {
    definition {
      Whether the unit is prefixed itself.
    }
  }
  attribute unit_name, String {
    collection true
    definition {
      One or more names of the unit.
    }
  }
  attribute unit_symbol, UnitSymbol {
    collection true
    definition {
      One or more symbol representations in different formats.
    }
  }
  attribute unit_system, UnitSystemReference {
    definition {
      Reference to the unit system to which the unit belongs.
    }
  }
  attribute dimension_ref, DimensionReference {
    definition {
      Reference to the dimension of the unit.
    }
  }
  attribute quantity_ref, QuantityReference {
    collection true
    definition {
      Reference to the quantity measured by the unit.
    }
  }
  attribute root_units, RootUnitReference {
    collection true
    definition {
      For derived units, the component root units with exponents.
    }
  }
  attribute si_derived_bases, SiBaseUnitReference {
    collection true
    definition {
      For SI-derived units, the SI base units with exponents.
    }
  }
}</body></sourcecode>

</clause>
</clause>

<clause id="_d9251409-96fd-fe31-f4eb-1979613d867c" obligation="normative">
<title id="_5cb1e8ee-c7bb-ac6b-38c4-a8e04fd225b0">YAML structure</title>
<p id="_8be8715f-86d7-ba19-ecde-acae82cdc80e">The unit data is stored in the <tt>units.yaml</tt> file with the following structure.</p>

<example id="_524d5916-6afc-e55c-c513-43b0f234616f">
<name id="_5111b046-5132-91a4-6540-0dd37cf8c124">Example of an SI unit</name>
<sourcecode id="_d7ffd279-864b-e38d-b9e6-25bf3d2e9f2e" lang="yaml"><body>NISTu1:
  dimension_url: "#NISTd1"
  short: meter
  root: true
  unit_system:
    type: SI_base
    name: SI
  unit_name:
  - meter
  unit_symbols:
  - id: m
    ascii: m
    html: m
    mathml: "&lt;mi mathvariant='normal'&gt;m&lt;/mi&gt;"
    latex: "\\ensuremath{\\mathrm{m}}"
    unicode: m
  root_units:
  - unit: meter
    power_numerator: 1
  quantity_reference:
  - name: length
    url: "#NISTq1"
  - name: diameter
    url: "#NISTq100"
  - name: length of path
    url: "#NISTq101"
  - name: cartesian coordinates
    url: "#NISTq102"
  - name: position vector
    url: "#NISTq103"
  - name: displacement
    url: "#NISTq104"
  - name: radius of curvature
    url: "#NISTq105"
  - name: wavelength
    url: "#NISTq114"
  - name: distance
    url: "#NISTq48"
  - name: breadth
    url: "#NISTq95"
  - name: height
    url: "#NISTq96"
  - name: thickness
    url: "#NISTq97"
  - name: radius
    url: "#NISTq98"
  - name: radial distance
    url: "#NISTq99"</body></sourcecode>

</example>

<example id="_a44c70d5-ccc8-8dcc-0d4a-af9db5a3bb64">
<name id="_6b5af6c3-2fbd-0ea6-fac2-007e60754311">Example of a non-SI unit</name>
<sourcecode id="_897abfc6-d030-76f7-9a9d-1d1205a779e2" lang="yaml"><body>NISTu8:
  dimension_url: "#NISTd1"
  short: inch
  root: true
  unit_system:
    type: non-SI_not_acceptable
    name: non-SI
  unit_name:
  - inch
  unit_symbols:
  - id: in
    ascii: in
    html: in
    mathml: "&lt;mi mathvariant='normal'&gt;in&lt;/mi&gt;"
    latex: "\\ensuremath{\\mathrm{in}}"
    unicode: in
  - id: "\"_in"
    ascii: "\""
    html: "&amp;#8243;"
    mathml: "&lt;mi mathvariant='normal'&gt;&amp;#8243;&lt;/mi&gt;"
    latex: "\\ensuremath{\\mathrm{''}}"
    unicode: "″"
  - id: dprime_in
    ascii: "\""
    html: "&amp;#8243;"
    mathml: "&lt;mi mathvariant='normal'&gt;&amp;#8243;&lt;/mi&gt;"
    latex: "\\ensuremath{\\mathrm{''}}"
    unicode: "″"
  root_units:
  - unit: inch
    power_numerator: 1
  quantity_reference:
  - name: length
    url: "#NISTq1"
  - name: distance
    url: "#NISTq48"</body></sourcecode>

</example>

<example id="_38163b2a-b391-41d6-d907-760ae2f3ea1d">
<name id="_1653c9dd-9941-46ca-3a5b-078957ab2f29">Example of an SI-derived unit</name>
<sourcecode id="_7677b0ed-8c03-5980-26d7-cc89fbd73e37" lang="yaml"><body>NISTu18:
  dimension_url: "#NISTd20"
  short: ohm
  root: true
  unit_system:
    type: SI_derived_special
    name: SI
  unit_name:
  - ohm
  unit_symbols:
  - id: Ohm
    ascii: Ohm
    html: "&amp;#8486;"
    mathml: "&lt;mi mathvariant='normal'&gt;&amp;#8486;&lt;/mi&gt;"
    latex: "\\ensuremath{\\mathrm{\\Omega}}"
    unicode: Ω
  root_units:
  - unit: ohm
    power_numerator: 1
  quantity_reference:
  - name: electric resistance
    url: "#NISTq28"
  si_derived_bases:
  - id: NISTu1
    prefix:
    power: 2
  - id: NISTu27
    prefix: p10_3
    power: 1
  - id: NISTu3
    prefix:
    power: 4
  - id: NISTu4
    prefix:
    power: 2</body></sourcecode>

</example>

<clause id="_7bcef438-be4f-0225-492f-b78a78d732b5" obligation="normative">
<title id="_9650ff0e-ef39-e3e2-5b7a-fd01a3b78505">Attributes</title>
</clause>
</clause>

<clause id="_0126c890-c63c-f6a0-f588-8e4e0e838955" obligation="normative">
<title id="_d155d012-b351-67d1-68c6-663cda8f4ebc">Unit symbols model</title>
<clause id="_d2c9250c-400f-f6f7-666f-0360dfbfab26" obligation="normative">
<title id="_55f78f1d-943d-67c8-8e26-ef37e66bd829">General</title>
<p id="_5504e490-0554-dd17-2512-5eda8c815702">The unit symbols model describes the various representations of a unit in different formats, such as ASCII, HTML, MathML, LaTeX, and Unicode. Each representation is associated with a unique identifier.</p>
</clause>

<clause id="_5342c607-cd5a-607c-8fa8-cf1fb843e671" obligation="normative">
<title id="_3e36a7eb-e517-19a4-68c6-d0fa540c53de">Definition</title>
<sourcecode id="_960749de-13e0-d9b7-8c00-02a8290574db" lang="lutaml"><body>class UnitSymbol {
  attribute id, String {
    definition "Unique identifier for the symbol representation"
  }
  attribute ascii, String {
    definition "ASCII text representation"
  }
  attribute html, String {
    definition "HTML representation (may include HTML entities)"
  }
  attribute mathml, String {
    definition "MathML representation in XML format."
  }
  attribute latex, String {
    definition "LaTeX representation in LaTeX typeset format."
  }
  attribute unicode, String {
    definition "Unicode representation in UTF-8 encoding."
  }
}</body></sourcecode>

</clause>

<clause id="_1c4a0534-b2b4-1e6c-e230-3169cb807c62" obligation="normative">
<title id="_51840902-43e7-ae8f-8190-4a8a224da86b">Attributes</title>
<clause id="_d2730c75-d017-552d-ef98-acfebe1f9bae" obligation="normative">
<title id="_03a59f30-b99b-2fc8-fa50-ad9e07dc06b2">id</title>
<p id="_bd55df03-201a-7b7b-f844-1847f8263e47">The <tt>id</tt> field is a unique identifier for the symbol representation. This field is used to reference the symbol in various contexts, such as documentation and software applications.</p>
</clause>

<clause id="_31d0e314-d89f-bb28-5437-90eb2c4fa60d" obligation="normative">
<title id="_588fe017-bb0d-cf0f-51ca-8a6e149303b1">ascii</title>
<p id="_54ec6174-1d43-bc82-f4eb-34192a615383">The <tt>ascii</tt> field contains the ASCII text representation of the symbol. This field is used in plain text environments where special characters may not be available.</p>
</clause>

<clause id="_23f0a3f5-a242-0ae6-4a59-bbaf7a63a170" obligation="normative">
<title id="_7774dcb8-691d-3983-26be-12e562712548">html</title>
<p id="_cf1ed83c-6827-abbf-ba1c-ad23761094a9">The <tt>html</tt> field contains the HTML representation of the symbol. This may include HTML entities for special characters, allowing for proper rendering in web browsers and other HTML-compatible environments.</p>
</clause>

<clause id="_ce1454a5-61f6-bb85-74f6-82526d66fedc" obligation="normative">
<title id="_c72ca9e2-f749-3197-6a5e-455fc511964e">mathml</title>
<p id="_c6f76a52-89e2-f3de-1aab-108bc5829667">The <tt>mathml</tt> field contains the MathML representation of the symbol. This field is used in mathematical contexts where precise formatting is required. MathML is an XML-based markup language for describing mathematical notation.</p>
</clause>

<clause id="_8bd2add8-ffb4-086c-9afb-73dbb38efc2c" obligation="normative">
<title id="_a12d7bb5-66b4-347e-b747-b58e76e6b7f5">latex</title>
<p id="_22bc2d5e-f6f7-e014-ee07-ee7767dae75f">The <tt>latex</tt> field contains the LaTeX representation of the symbol. This field is used in typesetting environments where LaTeX is applied.</p>
</clause>

<clause id="_ca577481-6db4-ba7e-c743-936d53e4c2ea" obligation="normative">
<title id="_7208b7d9-2e66-b992-ba22-68937d335021">unicode</title>
<p id="_e48df659-ba5c-39fd-855f-cfeb8a4b4d32">The <tt>unicode</tt> field contains the Unicode representation of the symbol. This field is used in environments that support Unicode encoding, such as within UnicodeMath.</p>
</clause>
</clause>

<clause id="_d1c95a83-c2e9-563e-e72f-aaea5a29011e" obligation="normative">
<title id="_433df4ca-c79c-7a88-aa8a-3e3ed9748003">YAML structure</title>
<example id="_b18ceadf-746d-eb8c-7da6-a84df1abc49e">
<name id="_25a5dfa1-9c2c-2d6f-39ff-da5000642db5">Example unit symbols from <tt>NISTu8</tt></name>
<sourcecode id="_311ddd62-1de6-b520-0a60-67856fce0642" lang="yaml"><body>unit_symbols:
- id: in
  ascii: in
  html: in
  mathml: "&lt;mi mathvariant='normal'&gt;in&lt;/mi&gt;"
  latex: "\\ensuremath{\\mathrm{in}}"
  unicode: in
- id: "\"_in"
  ascii: "\""
  html: "&amp;#8243;"
  mathml: "&lt;mi mathvariant='normal'&gt;&amp;#8243;&lt;/mi&gt;"
  latex: "\\ensuremath{\\mathrm{''}}"
  unicode: "″"
- id: dprime_in
  ascii: "\""
  html: "&amp;#8243;"
  mathml: "&lt;mi mathvariant='normal'&gt;&amp;#8243;&lt;/mi&gt;"
  latex: "\\ensuremath{\\mathrm{''}}"
  unicode: "″"</body></sourcecode>

</example>
</clause>
</clause>

<clause id="_8b299c2d-33bf-86ce-7747-75f2905c45fa" obligation="normative">
<title id="_ee325e40-c193-ec3a-a33a-ac63ee1fbfd9">Dimension reference model</title>
<clause id="_98061798-63e4-8454-b21f-1602cef4870d" obligation="normative">
<title id="_147f712d-dc3b-2633-a006-4e2a2960f6b8">General</title>
<p id="_106a70f2-60f1-2862-e54c-de090549427a">The dimension reference model describes the relationship between the unit and a dimension. Each unit is associated with a dimension, which defines the physical quantity that the unit measures.</p>
</clause>

<clause id="_be65d8b0-e0c4-736a-8b2b-3b70221d4dba" obligation="normative">
<title id="_cb6fc935-9aa9-e98d-fac4-74bc699a07bb">Definition</title>
<sourcecode id="_e5f634ec-2382-010f-e9b5-798cce1dbe59" lang="lutaml"><body>class DimensionReference {
  attribute dimension_url, String {
    definition "URL associated with the dimension"
  }
}</body></sourcecode>

</clause>

<clause id="_824ac1de-67ca-7bf9-5d26-91088bbf7e44" obligation="normative">
<title id="_b1d31be1-fd54-f7f3-4955-7e72c2f82dbb">Attributes</title>
<clause id="_c4461e75-b5d6-0d14-7f0f-e753196cd76f" obligation="normative">
<title id="_e1fd81ce-9bbd-e16f-15d3-b41eff6112a1">dimension_url</title>
<p id="_dbc53613-99cb-e0ee-d732-138f22028bbc">The <tt>dimension_url</tt> field is a reference to the dimension that the unit is associated with. This field links the unit to its corresponding dimension, allowing for easy identification and categorization.</p>
</clause>
</clause>

<clause id="_a7aa0a27-ec96-c4b9-58f0-53a04bee28ad" obligation="normative">
<title id="_67777e5c-285f-dff6-9457-ead7cd659aa7">YAML structure</title>
<example id="_3db7a855-00ca-16d3-83a5-12de4cb7724e"><sourcecode id="_d1a49bb9-19d9-b033-d14a-cb5a62562b4e" lang="yaml"><body>dimension_url: "#NISTd1"</body></sourcecode> </example>
</clause>
</clause>

<clause id="_2bb5304d-547e-cabd-e1bf-e265b689d36a" obligation="normative">
<title id="_b81b41ee-d317-1b88-173a-f66ec77d2f27">Unit system reference model</title>
<clause id="_77fd4a9d-0396-7493-6c51-19daceb0c4bc" obligation="normative">
<title id="_5bf41aab-bf7b-ffd0-2d17-4843b3d7a3e5">General</title>
<p id="_9c7983e3-442b-628e-80a2-80e12bf367f0">The unit system reference model describes the relationship between the unit and a unit system. Each unit is associated with a unit system, which defines the context in which the unit is used.</p>
</clause>

<clause id="_907c05e9-96e7-1c67-2b53-7c9c2e9af9be" obligation="normative">
<title id="_5a854002-71cb-51e6-d835-7e435bb6c7c7">Definition</title>
<sourcecode id="_7c4d2ae3-02b5-5dfc-c995-cb99925ce4d6" lang="lutaml"><body>class UnitSystemReference {
  attribute type, String {
    definition "Type of the unit system"
  }
  attribute name, String {
    definition "Name of the unit system"
  }
}</body></sourcecode>

</clause>

<clause id="_6e7c8b8e-ca09-994c-c975-b1cfb2b9b4d8" obligation="normative">
<title id="_320abe8e-c270-0023-b39b-a143287a6528">Attributes</title>
<clause id="_f40ab18c-e09b-7ca6-cc34-2a1d5b7596ee" obligation="normative">
<title id="_370f318c-8745-da59-c5f0-875038323061">type</title>
<p id="_2bbea623-2064-c0b0-af8c-45eecf6777b6">The <tt>type</tt> field is a string that represents the type of the unit system. This field indicates the classification of the unit system, such as SI base, SI derived, or non-SI.</p>
</clause>

<clause id="_0a9d3f2b-3960-2f5a-93c8-4b762904ad00" obligation="normative">
<title id="_03af4491-a039-8d1b-eedd-a86dd1c565d9">name</title>
<p id="_c1be4d78-32ba-6999-0e5d-a2cd0a6bb204">The <tt>name</tt> field is a string that represents the name of the unit system. This field provides a human-readable label for the unit system, allowing for easy identification and categorization.</p>
</clause>
</clause>

<clause id="_65db2528-3648-fe68-89b7-da197d83efa2" obligation="normative">
<title id="_3e740377-0960-bfd6-1896-3839f1684779">YAML structure</title>
<example id="_96fcd423-37f0-bb91-6bd2-732620812b72"><sourcecode id="_35d045fc-7c32-7690-72b0-11080f3f2ce8" lang="yaml"><body>unit_system:
  type: SI_base
  name: SI</body></sourcecode> </example>

<example id="_7130b8c4-95aa-96db-9a96-d0842fa2f0a9"><sourcecode id="_96f40584-3a84-3d4c-ca52-9364f1b02434" lang="yaml"><body>unit_system:
  type: non-SI_not_acceptable
  name: non-SI</body></sourcecode> </example>
</clause>
</clause>

<clause id="_8ee0e289-2011-37ab-fc50-90de6dc7e45a" obligation="normative">
<title id="_51795884-87b7-f1e8-a457-869d0c3abdf6">SI root unit derivation reference model</title>
<clause id="_d262c810-dc72-33c1-b92f-8859e9ecda64" obligation="normative">
<title id="_dfc0e7d3-565a-ab97-cc5d-ad509c0ed569">General</title>
<p id="_b5ef5287-6f9d-d866-fcba-2e10db0160d2">The SI root unit derivation reference model describes the relationship between the unit and the SI root units. Each unit may be associated with one or more SI root units, which define the base units from which the unit is derived.</p>

<p id="_80ecc450-ca8e-31ae-0ea1-617f866f0d39">This only applies for the units that are <tt>SI_derived_special</tt>.</p>
</clause>

<clause id="_e7fc3649-b21c-7123-1066-8d16677ea690" obligation="normative">
<title id="_53eefa02-4eb0-8a3b-2fd3-79f83ecc0fc6">Definition</title>
<sourcecode id="_3e371df7-0be3-23ac-3851-5ea68779191c" lang="lutaml"><body>class SiBaseUnitReference {
  attribute id, String {
    definition {
      Unique identifier for the SI base unit. e.g. `NISTu1`.
    }
  }
  attribute prefix, String {
    definition {
      Prefix for the SI base unit, if applicable. Defaults to empty string.
    }
  }
  attribute power, Integer {
    definition {
      Power of the SI base unit in the derived unit. Defaults to 1.
    }
  }
}</body></sourcecode>

</clause>

<clause id="_f83f116a-ed2a-982a-40b0-1c9e15934a97" obligation="normative">
<title id="_0d97ca4d-124b-e365-e896-d8176188c3fc">Attributes</title>
<clause id="_aa2018f9-21c2-2404-a2bd-6d2dfb425051" obligation="normative">
<title id="_6dc7c6b7-a088-877a-a94e-6e90a20f5e21">id</title>
<p id="_369d5404-33cb-f822-ac49-94b2dbdac97f">The <tt>id</tt> field is a string that represents a unique identifier for the SI base unit.</p>
</clause>

<clause id="_67ec425b-4426-5d77-8cfa-45c44ab190e1" obligation="normative">
<title id="_8836e9f8-b9c9-4d8c-d907-5315895a674c">prefix</title>
<p id="_4adc6766-2f81-b054-17a6-a85e0b859169">The <tt>prefix</tt> field is a string that represents the prefix for the SI base unit, if applicable.</p>
</clause>

<clause id="_9d2825aa-4f9f-e36b-a3be-b9e666cc2eec" obligation="normative">
<title id="_c6cfb08f-50d9-205f-797c-a88faf6d4127">power</title>
<p id="_0b8aceb7-a03e-f4a0-3146-011c86a9222d">The <tt>power</tt> field is an integer that indicates the power of the SI base unit in the derived unit. Defaults to 1.</p>
</clause>
</clause>

<clause id="_a641e939-b4b1-28b6-c251-cf84cfa5b47a" obligation="normative">
<title id="_6eb0831b-87e8-ed36-04a5-1e957adc0962">YAML structure</title>
<example id="_5a1068b3-4ebd-12b5-b222-b23c989d2e56">
<name id="_fac64c5c-78de-81c3-2cba-e27b4018f47e">Example SI root unit derivation reference from <tt>NISTu14</tt> “watt”, which is an SI-derived unit</name>
<sourcecode id="_a2cc6b30-dafd-da24-77d9-41e6a033494f" lang="yaml"><body>si_derived_bases:
  - id: NISTu1
    prefix:
    power: 2
  - id: NISTu27
    prefix: p10_3
    power: 1
  - id: NISTu3
    prefix:
    power: -3</body></sourcecode>

</example>

<example id="_158fbba8-69cd-5ed1-d91a-4b34ef954291">
<name id="_1cee8f3b-5598-fc7a-8737-a33ce2c6689b">Example SI root unit derivation reference from <tt>NISTu18</tt> “ohm”, which is an SI-derived unit</name>
<sourcecode id="_5e7ba460-17d9-e188-355b-a2569561c14a" lang="lutaml"><body>si_derived_bases:
- id: NISTu1
  prefix:
  power: 2
- id: NISTu27
  prefix: p10_3
  power: 1
- id: NISTu3
  prefix:
  power: 4
- id: NISTu4
  prefix:
  power: 2</body></sourcecode>

</example>
</clause>
</clause>

<clause id="_c236cc5c-d827-4567-3c5d-b6695a790f95" obligation="normative">
<title id="_3969bde1-c63d-0415-e712-bede7740bf19">Root unit reference model</title>
<clause id="_2a7e1a45-00bd-e0a7-1152-06681a335083" obligation="normative">
<title id="_1e77bbc2-d3c8-b479-ad6e-e7fc7b618465">General</title>
<p id="_697d3720-c014-2cc4-fbe2-dd4ca4b763d1">The root unit reference model describes the relationship between the unit and the root units. Each unit may be associated with one or more root units, which define the base units from which the unit is derived.</p>

<p id="_9cf3e5d6-efd4-8187-695b-612cd0c91b8e">If the unit is a root unit, where the <tt>root</tt> field is set to true, then the root unit reference model points to the unit itself.</p>
</clause>

<clause id="_3528f33d-2822-9c93-254c-2c26a788f29f" obligation="normative">
<title id="_bda3b7a8-6764-eb22-8195-d0185400032d">Definition</title>
<sourcecode id="_f287de8f-f3b0-96fd-2ea9-1e0c2c76e9ae" lang="lutaml"><body>class RootUnitReference {
  attribute unit, String {
    definition "Unit `short` name of the root unit which is a Unit object."
  }
  attribute power_numerator, Integer {
    definition "Power of the numerator."
  }
  attribute power_denominator, Integer {
    definition "Power of the denominator."
  }
  attribute prefix, String {
    definition "Prefix for the unit, if applicable."
  }
}</body></sourcecode>

</clause>

<clause id="_e11cb367-33ed-9093-eb73-e16aea767a5a" obligation="normative">
<title id="_d1acba12-61c4-6269-60f3-27b5b77c3da0">Attributes</title>
<clause id="_77e08980-2c5f-5c8e-010c-4a790c7621dc" obligation="normative">
<title id="_42352cb2-4c67-3020-e899-6a4d225a7aa0">unit</title>
<p id="_71460030-1f09-6987-d813-d21f5e041211">The <tt>unit</tt> field is a string that represents the short name of the root unit.</p>
</clause>

<clause id="_9c03306d-1bbe-f320-c399-f4ec35dc4fee" obligation="normative">
<title id="_add9ab39-a8e0-0f16-c9f3-d2f3b4e8e20c">power_numerator</title>
<p id="_6f8baf6b-4242-1db9-e185-88ff2454801e">The <tt>power_numerator</tt> field is an integer that represents the power of the numerator. This field indicates the exponent of the root unit in the numerator of the derived unit.</p>
</clause>

<clause id="_4d9e9625-e7f7-213d-7532-4a64c2fa8ead" obligation="normative">
<title id="_e2fd840a-9e32-bb3e-eab7-c5dda9310bad">prefix</title>
<p id="_38d2d085-4eff-eb25-a2c3-b0e15a6ff684">The <tt>prefix</tt> field is a string that represents the prefix for the unit, if applicable. This field indicates any prefix that modifies the root unit, such as “k” for kilogram or “m” for milli.</p>
</clause>
</clause>

<clause id="_85fc1316-9e72-c243-1f12-8f91fc8a5eba" obligation="normative">
<title id="_85f9fc76-7d89-f022-0664-370cc5409373">YAML structure</title>
<example id="_b3e5397a-4e92-cb2d-918e-33bf0a3a5146"><sourcecode id="_d5c9c54d-49c5-5fa7-196c-e676a0e13705" lang="yaml"><name id="_99c6f304-1e31-26ad-b333-c2494a3c3a64">Example root unit reference from <tt>NISTu36</tt> "minute", which is a root unit</name><body>root_units:
  enumerated_root_units:
  - unit: minute
    power_numerator: 1</body></sourcecode>

</example>

<example id="_8d837fdf-42a5-3054-1ac8-71aba7a002e3"><sourcecode id="_dffbc56f-b636-d6e5-8943-a7df44ec7489" lang="yaml"><name id="_b5923fda-3a7d-fe9c-d771-c8a9bae8cc1e">Example root unit reference from <tt>NISTu122</tt> "micron", which is not a root unit</name><body>root_units:
  enumerated_root_units:
  - unit: meter
    power_numerator: 1
    prefix: u</body></sourcecode>


<p id="_4b1f4aca-24da-23f2-396f-3090b53cf0e6">This indicates that the micron is derived from the meter with a prefix of “u” (micro). Hence the micron, a unit of length, is represented as the unit “meter” with a prefix “u” (effectively, “micrometer”) in the SI system.</p>
</example>

<example id="_16ef2114-1996-1ecd-0fbe-9ac446015365"><sourcecode id="_933ccf36-5d06-a354-d0ee-ddf93631f1be" lang="yaml"><name id="_28d1efa7-35dd-ea4f-70ab-043b4197029a">Example root unit reference from <tt>NISTu125</tt> "kilogram-force second squared per meter", which is not a root unit</name><body>root_units:
  enumerated_root_units:
  - unit: gram_force
    power_numerator: 1
    prefix: k
  - unit: second
    power_numerator: 2
  - unit: meter
    power_numerator: -1</body></sourcecode>


<p id="_9c42e762-e401-9c0b-d60b-54491cc31dc9">This indicates that the kilogram-force second squared per meter is derived from these root units:</p>

<ul id="_01e4b57b-d811-e50f-4c00-9898e2e3f9d2"><li><p id="_786d5c80-3186-3cea-8b8e-2569b1bde54e">kilogram-force (with a prefix of “k”, effectively “gram_force” with a prefix “k”)</p>
</li>
<li><p id="_7a7c2b7a-9ee7-7c3a-2e8d-e738215a6ee0">second (with a power of 2)</p>
</li>
<li><p id="_2dc08f33-8ba4-18d7-e916-690989c254df">meter (with a power of -1)</p>
</li>
</ul>

<p id="_4c7e5916-30a5-55f1-f095-28ef8ce0be56">The unicode representation would therefore be <tt>kgf·s²m⁻¹</tt>.</p>
</example>
</clause>
</clause>

<clause id="_f876cdd2-0520-049c-bd25-a4fbb8d5a9f5" obligation="normative">
<title id="_8ba921d1-dc50-d670-3f52-284edb86677a">Quantity reference model</title>
<clause id="_8dd15ede-dc36-df27-3101-59d2a800cc33" obligation="normative">
<title id="_6b690d02-aa98-fb22-9b2c-b699ab8204cc">General</title>
<p id="_45ee5ede-8800-1c22-84cb-1afb9831bd59">The quantity reference model describes the relationship between the unit and the quantity. Each unit may be associated with one or more quantities, which define the physical quantities that the unit measures.</p>
</clause>

<clause id="_dc319498-cd85-c93e-40f6-b303883b9933" obligation="normative">
<title id="_1eba3da8-d957-1e6a-9f78-03012b778d8e">Definition</title>
<sourcecode id="_2530b4fd-711b-18a2-5726-a4b18d688cd5" lang="lutaml"><body>class QuantityReference {
  attribute name, String {
    definition "Name of the quantity"
  }
  attribute url, String {
    definition "URL reference to the quantity"
  }
}</body></sourcecode>

</clause>

<clause id="_855d597f-0e83-35d6-d18f-ed7f9d9e9085" obligation="normative">
<title id="_3a507789-ca8a-ac94-9c52-f3284bb9c46a">YAML structure</title>
<example id="_2cbcddf1-f1fd-f918-6dc1-ecb70a5037d0">
<name id="_ad9f2327-c2cd-d709-f8e4-1a91d02761ce">Example quantity reference from <tt>NISTu15</tt> “coulomb”, which is a root unit</name>
<sourcecode id="_af0d30a2-f83e-680e-85f0-29b0f21c99d1" lang="yaml"><body>quantity_reference:
- name: electric charge
  url: "#NISTq22"
- name: amount of electricity
  url: "#NISTq23"</body></sourcecode>

</example>
</clause>
</clause>
</clause>

<clause id="_ed50b071-d2a8-1d98-ed3c-271dcf414113" obligation="normative">
<title id="_c3211982-9cd7-7b83-7828-a49e5fa495ae">Data file normalization rules</title>
<clause id="_f58ab016-2b32-68c5-206a-422e217f9037" obligation="normative">
<title id="_77b7a2c9-ae4d-263c-0aa7-58b5dea5ee0e">General</title>
<p id="_549bc9c6-a533-6f2b-341a-91bb6272533b">Data file normalization in UnitsDB refers to the process of organizing and structuring the YAML files that make up the database to ensure consistency, non-redundancy, and integrity. These rules help maintain the quality and reliability of the data while facilitating its use in various applications.</p>
</clause>

<clause id="_07c7bebb-3ae9-6f82-507d-d0ed4af134f3" obligation="normative">
<title id="_4149097b-a38d-bfd0-72c4-c038b5b6f050">Normalization principles model</title>
<clause id="_c5f5f070-9985-0735-5227-073f16d09cff" obligation="normative">
<title id="_24756bc6-0541-f709-4717-0a27e810fe98">Unique identifiers</title>
<p id="_9bcbfc86-5c70-6336-5611-a7dd5c241429">All model instances within UnitsDB (dimensions, quantities, units, prefixes, etc.) must have unique identifiers. These identifiers follow a consistent pattern:</p>

<ul id="_d30468cd-eaf8-e82d-784f-38520a5f1307"><li><p id="_0421368f-0106-6808-59d3-3ebf719a5fe2">Dimensions: <tt>NISTdX</tt> (e.g., <tt>NISTd1</tt>)</p>
</li>
<li><p id="_50d420d4-8523-3084-3690-f97c66f53076">Quantities: <tt>NISTqX</tt> (e.g., <tt>NISTq1</tt>)</p>
</li>
<li><p id="_3b6ec0ed-20dd-95e4-e944-70401a2b47a3">Units: <tt>NISTuX</tt> (e.g., <tt>NISTu1</tt>)</p>
</li>
<li><p id="_6bab92dd-f8b6-d416-40f0-9439e062ba67">Prefixes: <tt>NISTpX_Y</tt> (e.g., <tt>NISTp10_3</tt>)</p>
</li>
</ul>

<p id="_aeca3e58-d940-1d9f-c11d-c799a0502fbd">Where <tt>X</tt> and <tt>Y</tt> are numeric values.</p>
</clause>

<clause id="_a1842e61-bac7-d777-acde-34c935ece89b" obligation="normative">
<title id="_5a457e23-2999-7a2a-b179-e834f9d0bce2">References</title>
<p id="_b3a6691a-5637-193d-fbdc-ff0fbaab75fc">References between entities must use consistent paths:</p>

<ul id="_08459bf4-4ab4-6ec9-f0d2-3b3588d15685"><li><p id="_82ef4f84-8e69-ddb3-52e8-95b04d9622ec">References to dimensions use the format <tt>#NISTdX</tt></p>
</li>
<li><p id="_a54f37db-d5a5-58ff-06cd-fd0e2d779e7a">References to quantities use the format <tt>#NISTqX</tt></p>
</li>
<li><p id="_22d1a7e6-d7bc-bdc3-2a71-6fba20e49193">References to units use the format <tt>#NISTuX</tt></p>
</li>
</ul>

<p id="_2d42c287-1b6d-fe1f-e33b-0bf245d103b2">These references create a web of relationships that maintain the integrity of the database.</p>
</clause>

<clause id="_01a790d8-f00b-526e-cb20-42e924419ea7" obligation="normative">
<title id="_504c8709-a52e-d59a-d036-8b8b373dedb5">Hierarchical organization</title>
<p id="_f3d0bcc1-7b9e-22b1-6926-2e041827f4f2">The data is organized in a hierarchical manner that reflects the logical relationship between entities:</p>

<ul id="_52c298b4-f545-2d2b-bd49-040240564646"><li><p id="_fad2dc0c-04b5-42ef-59e9-47444adf113b">Dimensions provide the mathematical foundation for quantities</p>
</li>
<li><p id="_86d0f416-6db3-6021-9590-9e9790736817">Quantities are physical properties that can be measured</p>
</li>
<li><p id="_497ac312-445a-d6f8-f2b9-b4a299e4e036">Units are references for measuring quantities</p>
</li>
<li><p id="_2b064db5-6420-f110-f73e-51fc8f577e1a">Prefixes modify units to create new scales</p>
</li>
</ul>
</clause>
</clause>

<clause id="_d3064ade-903f-1512-88a8-dccfb34a6c22" obligation="normative">
<title id="_0be98bcd-694b-628c-f088-a072e9fe72ad">File normalization model</title>
<clause id="_3569f944-9db4-3533-7cbf-8ef4ebf2987e" obligation="normative">
<title id="_cf461355-e637-b491-6278-e594266a573d">dimensions.yaml</title>
<ul id="_a732e3c1-9961-d8cf-9a99-8d485dd11807"><li><p id="_a320c5fa-0158-d22c-a941-0d01ddc1fb4d">Each dimension entry must have a unique identifier.</p>
</li>
<li><p id="_22690e78-eb62-4dbf-6261-7c86de8592e8">Dimensionless entries must be explicitly marked with <tt>dimensionless: true</tt>.</p>
</li>
<li><p id="_3797fc77-90e6-7e9b-bf84-01f6f6362f9f">Base quantity components must specify their <tt>powerNumerator</tt> and <tt>symbol</tt>.</p>
</li>
<li><p id="_9a38eacd-8ecd-5836-5909-4ff83dd5c090">When <tt>dim_symbols</tt> are provided, they must include representations in all standard formats (ascii, html, mathml, latex, unicode).</p>
</li>
</ul>
</clause>

<clause id="_53e59847-4b0c-95a9-071a-5bf338fc794c" obligation="normative">
<title id="_3ebc5634-e235-5dda-c574-0c4460b1fbbb">quantities.yaml</title>
<ul id="_0dbfeb2a-1669-65c3-5451-140d07fce49b"><li><p id="_0f35c2b6-8fed-6621-367b-a03375b56332">Each quantity entry must have a unique identifier.</p>
</li>
<li><p id="_b9517acb-19dc-51d5-0cda-f34a39277d35">Each quantity must reference a valid dimension via <tt>dimension_url</tt>.</p>
</li>
<li><p id="_38ff659c-43a0-0d8d-8c2d-9781c28ba8c1">Quantity types must be either <tt>base</tt> or <tt>derived</tt>.</p>
</li>
<li><p id="_cbd32a8a-a9b0-96a6-0145-bb3c86ccc7c1">Quantity names must be provided as an array, with the primary name first.</p>
</li>
<li><p id="_117b71ff-9d63-e0b5-3a36-f0425f62f43b">Unit references must include both a name and a URL to the unit.</p>
</li>
</ul>
</clause>

<clause id="_c87614da-8698-3e4c-7009-23b34a7c704c" obligation="normative">
<title id="_af36b1cc-00dd-4ef4-531a-9d181231ac91">units.yaml</title>
<ul id="_38e722e5-66ef-2142-d81f-0a2fa33d0510"><li><p id="_f019c80b-f471-ce83-9ccf-9ec64d1676d7">Each unit entry must have a unique identifier.</p>
</li>
<li><p id="_88784bfd-a4ec-37af-df5a-10f6779eeeb3">Each unit must reference a valid dimension via <tt>dimension_url</tt>.</p>
</li>
<li><p id="_9177e1bb-fd95-31e2-e040-e29e87b50639">The <tt>root</tt> field must be explicitly set to either <tt>true</tt> or <tt>false</tt>.</p>
</li>
<li><p id="_4970883a-908e-08a7-1eea-4015de0b5df8">If <tt>prefixed</tt> is true, there must be a prefix specified in the <tt>root_units</tt> section.</p>
</li>
<li><p id="_1cf8bcd9-bd08-f316-d007-deed78a54a19">Unit names must be provided as an array, with the primary name first.</p>
</li>
<li><p id="_c49f499d-324f-d1ff-3822-e5886e92c50a">Unit symbols must include representations in all standard formats.</p>
</li>
<li><p id="_04b2f44a-dcc3-6d07-5948-ea1824190dda">The <tt>unit_system</tt> field must specify both a valid <tt>type</tt> and <tt>name</tt>.</p>
</li>
<li><p id="_2936df47-fb76-9aa7-3b68-a1729e4ea299">For derived units, the <tt>root_units</tt> section must properly enumerate all component units with their powers.</p>
</li>
<li><p id="_7a38e210-4aff-38e7-759e-d7951cb9f5d2">Quantity references must include both a name and a URL to the quantity.</p>
</li>
</ul>
</clause>

<clause id="_50a90ad2-ec21-c182-fd30-a1ee5dde63c5" obligation="normative">
<title id="_6a8e2e72-e1d3-f277-5d59-a5e5ad2768e6">prefixes.yaml</title>
<ul id="_7732a587-6e55-8f0b-519b-4cf7d132f634"><li><p id="_f2f491b4-e8c4-a343-ea72-b8e074b1cd78">Each prefix entry must have a unique identifier.</p>
</li>
<li><p id="_402bb0d5-db89-2086-b11a-247a173270ea">The <tt>base</tt> field must be either 10 (for SI prefixes) or 2 (for binary prefixes).</p>
</li>
<li><p id="_7b796114-3033-ac68-0302-631f6c3125ae">The <tt>power</tt> field must be an integer.</p>
</li>
<li><p id="_00a79bb1-bb78-8bb2-ba6c-f4bb39c0b773">Prefix symbols must include representations in all standard formats.</p>
</li>
</ul>
</clause>

<clause id="_eb881fd4-29c2-3310-c242-c4b6c3c0e619" obligation="normative">
<title id="_9fe60ddd-c6c6-70b8-6d26-b72418cc37d3">unit_systems.yaml</title>
<ul id="_6e30d8a1-71ae-9b9b-72a1-813b12707758"><li><p id="_caaa497a-8d2b-ed5a-0f12-f67e9864950c">Each unit system entry must have a unique identifier.</p>
</li>
<li><p id="_4bba65b3-2329-030e-45ac-f69a6cf1eb87">The <tt>name</tt> field must be either “SI” or “non-SI”.</p>
</li>
<li><p id="_da801cd3-0dc1-e0a4-ce42-2025407dc6e1">The <tt>acceptable</tt> field must be explicitly set to either <tt>true</tt> or <tt>false</tt>.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_7db9828d-f628-cbfe-1c03-d8448c4bcc8f" obligation="normative">
<title id="_aa7816c4-0223-e76b-3286-ab1976bb3fe7">Cross-file normalization model</title>
<clause id="_96c1f4c9-8150-5651-da00-a1c1a10824b1" obligation="normative">
<title id="_ead5906b-444a-bea4-8af5-3d28ce5bb623">Dimension-quantity relationships</title>
<ul id="_f4fedc2f-5983-78ec-ae5b-351705d1d4e9"><li><p id="_29ad1dee-7596-54c0-c781-48979a49269b">Each quantity must reference a valid dimension.</p>
</li>
<li><p id="_945e2da0-51fb-14a2-5ae4-e3250167fcb8">Multiple quantities can reference the same dimension.</p>
</li>
</ul>
</clause>

<clause id="_c5b28f0f-581e-388f-7a7d-1954f12e5e92" obligation="normative">
<title id="_c31b41a5-53b0-d6b8-3ee6-a46c46229bee">Quantity-unit relationships</title>
<ul id="_d5484616-811a-ad9a-b84e-5a27002cc82f"><li><p id="_613cbd29-1bb0-c1f9-59ac-025fe06a99cc">Each unit must be associated with at least one quantity.</p>
</li>
<li><p id="_60f1d137-666c-beac-72a5-ee6dadc96a43">Multiple units can measure the same quantity.</p>
</li>
<li><p id="_7e17bae5-e745-8056-bc24-c488128e7be4">The dimension of a unit must match the dimension of the quantities it measures.</p>
</li>
</ul>
</clause>

<clause id="_c5cea20d-a1a4-2731-5442-51144cfe6b9d" obligation="normative">
<title id="_c0d397b6-68b7-18c5-e300-5640cfafb019">Unit-prefix relationships</title>
<ul id="_d808ae75-3f03-d984-61fe-e2537b089f3e"><li><p id="_3146c880-3963-194b-178d-112597ffdade">Prefixed units must reference valid prefixes.</p>
</li>
<li><p id="_3afdb0c6-8b30-082b-bbc3-35e69dd28b69">The same prefix can be applied to multiple units.</p>
</li>
<li><p id="_37193fe8-5e22-9aa9-f21c-c6d36a35e209">For the base unit of mass (kilogram), prefixes are applied to “gram” rather than “kilogram”.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_22524af7-5f32-a306-47fc-c6cd29c19456" obligation="normative">
<title id="_1c7e64a6-88ab-3a6a-16c7-1a4c5564d145">Data integrity model</title>
<clause id="_d70f8146-1f47-4223-c904-f9a98f6acb63" obligation="normative">
<title id="_d19ec0a4-67d9-62eb-d96d-ca1ca62c413c">General</title>
<p id="_16eb334e-7cd9-64cf-8efe-ef2110e72aac">The data integrity model defines checks and validations that should be performed to ensure the overall consistency and correctness of the UnitsDB database.</p>

<sourcecode id="_baf11507-111b-96f5-da05-46db917ca895" lang="lutaml"><body>class DataIntegrityCheck {
  attribute check_type, String {
    definition "Type of integrity check"
  }
  attribute description, String {
    definition "Description of the check"
  }
  attribute severity, String {
    definition "Severity level if check fails (error, warning, info)"
  }
}</body></sourcecode>

</clause>

<clause id="_13e31802-5eda-b34c-b67b-c120d6925b93" obligation="normative">
<title id="_40385b00-4614-11d5-6fe1-f36b31cf01a0">Data integrity checks</title>
<p id="_1cca0503-750f-9ce6-89f9-3ab0be3e4c52">To ensure the integrity of the UnitsDB data, the following checks should be performed:</p>

<ul id="_4f921300-7f0a-e66c-e6af-38d667098d2b"><li><p id="_6337c2e2-dd75-60ca-252f-bfca1eaf3e5f">All reference links must point to valid entities.</p>
</li>
<li><p id="_576aac8f-72ff-8fec-3595-41ecad06d5d1">Circular references must be avoided.</p>
</li>
<li><p id="_815485a6-dd8e-ecad-8525-d907938539f3">No duplicate identifiers should exist within each entity type.</p>
</li>
<li><p id="_a5018a2e-b381-28ac-6ac0-b28d1a9c2cf9">Derived dimensions must have consistent exponents in their base quantity components.</p>
</li>
<li><p id="_f885eb56-9c83-3b7e-1522-b9f52a6cfc65">Units must have dimensions that match their referenced quantities.</p>
</li>
<li><p id="_c14456be-a848-f1ea-a3c4-a15657463141">All required fields must be present for each entity type.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_acf534f9-1d24-cbe0-633d-9d61c1cc48be" obligation="normative">
<title id="_ba8e5b45-31f7-dc3d-83d3-96b91f360175">Change management model</title>
<clause id="_f6e28815-39e4-7c30-b4c6-4b76972d3ac0" obligation="normative">
<title id="_72dd1310-1f69-72cf-5da1-6de571292795">General</title>
<p id="_e6cfc21f-8e58-7ef3-3301-51f608b592f6">The change management model defines rules and procedures for updating the UnitsDB data files while maintaining backward compatibility and data integrity.</p>

<sourcecode id="_ff3f05b0-176d-9be6-ece5-d6b2924f3df7" lang="lutaml"><body>class ChangeManagement {
  attribute change_type, String {
    definition "Type of change"
  }
  attribute rules, Array {
    definition "Rules governing this type of change"
  }
  attribute impact, String {
    definition "Potential impact of this type of change"
  }
}</body></sourcecode>

</clause>

<clause id="_1440cca6-8e7d-4958-cfbe-e82338db4cfd" obligation="normative">
<title id="_bf77334e-554f-031c-e9b4-a0c809a7764d">Versioning and change management</title>
<p id="_23b52ead-950f-40df-c36c-40e40d219ee9">When updating the UnitsDB data files, the following rules should be applied:</p>

<ul id="_8ba532ec-5f73-aefe-4f2c-dc29c0b6e7dd"><li><p id="_d4a2949b-8709-ce69-ba65-bacd8fca7a68">Existing identifier values should not be changed to avoid breaking existing references.</p>
</li>
<li><p id="_313f8667-c2e3-6caa-9596-8c0aec1493b7">New entities should be assigned new, unique identifiers.</p>
</li>
<li><p id="_01bd533d-9b4c-1980-07e5-1c7aec95ccc7">When an entity needs to be deprecated, it should be marked as such rather than removed.</p>
</li>
<li><p id="_035b8a30-adcd-6a54-87e8-0c96e5484564">Major structural changes to the data format should be accompanied by a version increment and appropriate documentation.</p>
</li>
</ul>
</clause>
</clause>
</clause>

<clause id="_4b41aa88-71c4-9d99-aada-d87d30fbdce3" obligation="normative">
<title id="_a7e503c7-b89a-905e-17e5-7bb15f142c1d">Common models</title>
<clause id="_ebb235ba-1815-2f0b-cc02-e983ad3bfac0" obligation="normative">
<title id="_5ecf2af2-ed51-64e1-68b1-18421de3dc88">General</title>
<p id="_bcfad013-a44c-e663-4b8f-f34b3ac1189c">This section defines models that are shared across multiple components of the UnitsDB specification. These common models provide consistent structures and behaviors that are reused throughout the database.</p>
</clause>

<clause id="_6f7791a9-8ca0-7fd0-2678-d8c1415e687c" obligation="normative">
<title id="_3530aa7a-3a9c-e928-9723-9bec5470d7a5">Symbol representation model</title>
<clause id="_46614906-a593-97e9-8113-db8779f7e530" obligation="normative">
<title id="_2a7d24d8-f804-fbff-21f8-c0c4eabf9877">General</title>
<p id="_395a09cd-426d-5950-081b-1102b180fe9e">The Symbol representation model is used across various entities in UnitsDB to provide consistent representation of symbols in different formats.</p>

<p id="_a3042feb-4be3-cf37-ac1c-adbfccee5140">Symbol representations are used in:</p>

<ul id="_bac9c2e9-f900-aa5b-d5a8-48cf5aa78004"><li><p id="_773ee2cb-967d-2a28-f7d4-332291f2856e">Unit symbols</p>
</li>
<li><p id="_a01bd531-783f-1b60-9475-dcf55be00bba">Dimension symbols</p>
</li>
<li><p id="_7098c008-95da-8af9-5f43-b7445282be4a">Prefix symbols</p>
</li>
</ul>

<p id="_dcb076f3-a581-5c35-342f-7180350c967c">Each representation includes multiple formats to support different output contexts:</p>

<ul id="_f2cf93a7-ef90-cd35-1b2a-6808a7f08281"><li><p id="_19385bc6-ed5f-9b64-3cdd-047c5641bc94">Plain text (ASCII)</p>
</li>
<li><p id="_b8c4547c-777b-c80e-13de-2323afd6d0f0">Web display (HTML)</p>
</li>
<li><p id="_e3ab131a-06ac-19da-5e46-e3ebc62d173b">Mathematical typesetting (MathML, LaTeX)</p>
</li>
<li><p id="_47875343-98e4-12fe-2f8e-d4bcd5c7a22b">Unicode-enabled environments</p>
</li>
</ul>
</clause>

<clause id="_93b96324-1735-fb98-3442-4b4a11befb38" obligation="normative">
<title id="_8a331f2b-5867-6019-acc0-c99dd098965e">Definition</title>
<sourcecode id="_09c0f637-7d03-f7de-7bdc-8b70dff0dfeb" lang="lutaml"><body>class SymbolRepresentation {
  attribute id, String {
    definition "Unique identifier for the symbol representation"
  }

  attribute ascii, String {
    definition "ASCII text representation"
  }

  attribute html, String {
    definition "HTML representation (may include HTML entities)"
  }

  attribute mathml, String {
    definition "MathML representation in XML format."
  }

  attribute latex, String {
    definition "LaTeX representation in LaTeX typeset format."
  }

  attribute unicode, String {
    definition "Unicode representation in UTF-8 encoding."
  }
}</body></sourcecode>

</clause>

<clause id="_0b6729f6-9a62-8866-0f92-de4e18eedc31" obligation="normative">
<title id="_0261ba8a-6333-1d3c-a339-13a52f9365b0">YAML structure</title>
<example id="_133c4bc9-ae26-3077-c2af-cdf0a278159d"><p id="_5226ee0b-9bca-a8cc-adda-10a7f4dfd7be">Symbol representation for the meter unit:</p>

<sourcecode id="_166f22f9-f5d9-eba3-b73c-88cfd9367d7a" lang="yaml"><body>- id: m
  ascii: m
  html: m
  mathml: "&lt;mi mathvariant='normal'&gt;m&lt;/mi&gt;"
  latex: "\\ensuremath{\\mathrm{m}}"
  unicode: m</body></sourcecode>

</example>
</clause>
</clause>

<clause id="_9e47f65c-e15f-e548-60c6-c83652cdb325" obligation="normative">
<title id="_23a8a3b7-0a7f-cc89-e8b6-c50121c1e541">Cross-reference model</title>
<clause id="_8ae2333e-4411-fd20-3da4-30cc3c4bba63" obligation="normative">
<title id="_872a1f50-a1d2-7e63-228f-b57fd27141ca">General</title>
<p id="_f238cd77-e611-5632-c337-6f6ed23dc7f0">The Cross-reference model establishes a consistent mechanism for linking entities across different files in UnitsDB.</p>
</clause>

<clause id="_8f5625d6-7e98-872d-b5cd-9cdc8ed049fb" obligation="normative">
<title id="_b1cfde44-6be5-5bcf-d080-2120ae6aae8a">Definition</title>
<sourcecode id="_4308016f-bbc5-9573-0dd7-d596141ae26e" lang="lutaml"><body>class CrossReference {
  attribute identifier, String {
    definition "Identifier of the referenced entity"
  }
}</body></sourcecode>

</clause>

<clause id="_317bda3b-936b-0732-bd3c-54a1261fbeb2" obligation="normative">
<title id="_9d9faf1a-1656-e53f-7361-f689a2ffb5ed">YAML structure</title>
<p id="_20fc8e44-0323-31d8-3845-210c99741699">Cross-references follow a consistent pattern:</p>

<ul id="_92205c9b-2198-4817-f9ce-7b8ed8ed804c"><li><p id="_a80d5cef-05c6-ace6-f145-bcd15b8f1150">References to dimensions use the format <tt>#NISTdX</tt> (e.g., <tt>#NISTd1</tt> for length)</p>
</li>
<li><p id="_d370c15f-4c6b-3bd9-dfea-09e1302fd495">References to quantities use the format <tt>#NISTqX</tt> (e.g., <tt>#NISTq1</tt> for length)</p>
</li>
<li><p id="_faf56231-acd7-cdba-d974-719b76b55f63">References to units use the format <tt>#NISTuX</tt> (e.g., <tt>#NISTu1</tt> for meter)</p>
</li>
<li><p id="_7ceb3ac8-ca61-6f0d-3a94-0ab306006426">References to prefixes use the format <tt>#NISTpX_Y</tt> (e.g., <tt>#NISTp10_3</tt> for kilo)</p>
</li>
</ul>

<example id="_0d3be2cb-c7c2-7170-907a-85bd826bc1c2"><p id="_3585e26c-6909-0df1-357b-611066abd23a">Cross-reference to the length dimension from a quantity:</p>

<sourcecode id="_0c479215-ab12-f698-c945-901e6377a5b6" lang="yaml"><body>dimension_url: "#NISTd1"</body></sourcecode>

</example>
</clause>
</clause>
</clause>


</sections><annex id="_9799139b-00f4-4113-0a3a-9f7d92fc8046" obligation="normative">
<title id="_a6a4eed6-319a-c3b6-677a-12ff27322a16">Test suite</title>
<p id="_30c91ed6-ebc9-5ecc-528b-110b511b54f7">This appendix provides a test suite for UnitsDB, comprising examples from the YAML files that demonstrate the correct implementation of the data models and normalization rules.</p>

<clause id="_5a27fe12-ac77-6f9c-ae93-ad4e248dbca4" obligation="normative">
<title id="_f02a5477-80d9-e04c-a1a9-29ab72540f5f">Test cases</title>
<clause id="_9df0e4b2-b72c-a27e-a72c-87a06e07c68e" obligation="normative">
<title id="_99848f5d-f5d8-db30-3be7-fc47cf68a9e9">Dimension test cases</title>
<p id="_cf5e9b0f-7e7e-abb8-5985-ae7123f89ab3">These test cases verify the correct implementation of the Dimension model:</p>

<sourcecode id="_f05dfa80-d0f9-d78b-711a-a1654d7b1067" lang="yaml"><body># Test case 1: Base dimension (length)
NISTd1:
  length:
    powerNumerator: 1
    symbol: L
    dim_symbols:
    - id: dim_L
      ascii: L
      html: "&amp;#x1D5AB;"
      mathml: "&lt;mi mathvariant='sans-serif'&gt;L&lt;/mi&gt;"
      latex: "\\ensuremath{\\mathsf{L}}"
      unicode: "\U0001D5AB"

# Test case 2: Derived dimension (force)
NISTd12:
  length:
    powerNumerator: 1
    symbol: L
  mass:
    powerNumerator: 1
    symbol: M
  time:
    powerNumerator: -2
    symbol: T

# Test case 3: Dimensionless quantity
NISTd67:
  dimensionless: true</body></sourcecode>

</clause>

<clause id="_81c26ebb-b785-c6b7-7ad4-b5a24c1182ea" obligation="normative">
<title id="_2bd7d234-9f8e-9f22-9f7c-52371cf81b7f">Quantity test cases</title>
<p id="_0e7f8e3e-edd4-ece1-6029-06dcff09585f">These test cases verify the correct implementation of the Quantity model:</p>

<sourcecode id="_b573bb9c-67b8-5060-6cc6-9f362b64dd13" lang="yaml"><body># Test case 1: Base quantity (length)
NISTq1:
  dimension_url: "#NISTd1"
  quantity_type: base
  quantity_name:
  - length
  unit_reference:
  - name: meter
    url: "#NISTu1"
  - name: foot
    url: "#NISTu78"

# Test case 2: Derived quantity (velocity)
NISTq12:
  dimension_url: "#NISTd11"
  quantity_type: derived
  quantity_name:
  - velocity
  - speed
  unit_reference:
  - name: meter per second
    url: "#NISTu1.u3e-1/1"
  - name: kilometer per hour
    url: "#NISTu160"

# Test case 3: Quantity with multiple names
NISTq3:
  dimension_url: "#NISTd3"
  quantity_type: base
  quantity_name:
  - time
  - duration
  unit_reference:
  - name: second
    url: "#NISTu3"</body></sourcecode>

</clause>

<clause id="_ea54f4b9-4880-dfe2-3d6c-4c698a57086d" obligation="normative">
<title id="_07239433-efca-c526-bfc6-739d85c46b65">Unit test cases</title>
<p id="_c178c803-c20e-2e85-f8ce-af3c58f29261">These test cases verify the correct implementation of the Unit model:</p>

<sourcecode id="_42bebc3b-ba91-e3b2-28c6-d9aa6641eb53" lang="yaml"><body># Test case 1: Base unit (meter)
NISTu1:
  dimension_url: "#NISTd1"
  short: meter
  root: true
  unit_system:
    type: SI_base
    name: SI
  unit_name:
  - meter
  unit_symbols:
  - id: m
    ascii: m
    html: m
    mathml: "&lt;mi mathvariant='normal'&gt;m&lt;/mi&gt;"
    latex: "\\ensuremath{\\mathrm{m}}"
    unicode: m
  root_units:
    enumerated_root_units:
    - unit: meter
      power_denominator: 1
      power_numerator: 1
  quantity_reference:
  - name: length
    url: "#NISTq1"

# Test case 2: Derived unit (meter per second)
NISTu1.u3e-1/1:
  dimension_url: "#NISTd11"
  short: meter per second
  root: false
  unit_system:
    type: SI_derived_non-special
    name: SI
  unit_name:
  - meter per second
  unit_symbols:
  - id: mps
    ascii: m/s
    html: m/s
    mathml: "&lt;mi mathvariant='normal'&gt;m&lt;/mi&gt;&lt;mo&gt;/&lt;/mo&gt;&lt;mi mathvariant='normal'&gt;s&lt;/mi&gt;"
    latex: "\\ensuremath{\\mathrm{m/s}}"
    unicode: m/s
  root_units:
    enumerated_root_units:
    - unit: meter
      power_denominator: 1
      power_numerator: 1
    - unit: second
      power_denominator: 1
      power_numerator: -1
  quantity_reference:
  - name: velocity
    url: "#NISTq12"

# Test case 3: Prefixed unit (kilometer)
NISTu1p10'3:
  dimension_url: "#NISTd1"
  short: kilometer
  prefixed: true
  root: false
  unit_system:
    type: SI_derived_non-special
    name: SI
  unit_name:
  - kilometer
  unit_symbols:
  - id: km
    ascii: km
    html: km
    mathml: "&lt;mi mathvariant='normal'&gt;km&lt;/mi&gt;"
    latex: "\\ensuremath{\\mathrm{km}}"
    unicode: km
  root_units:
    enumerated_root_units:
    - unit: meter
      power_denominator: 1
      power_numerator: 1
      prefix: k
  quantity_reference:
  - name: length
    url: "#NISTq1"</body></sourcecode>

</clause>

<clause id="_3acdedab-6db3-d30e-6f90-15c32d248f6b" obligation="normative">
<title id="_4c4c5098-36f9-740a-0d76-3d9e892f696a">Prefix test cases</title>
<p id="_3ce51a70-234e-821a-ffd0-f810ee89afe0">These test cases verify the correct implementation of the Prefix model:</p>

<sourcecode id="_f3c4e3f3-3f36-df16-ce98-3531e852ee62" lang="yaml"><body># Test case 1: Standard SI prefix (kilo)
NISTp10_3:
  name: kilo
  symbol:
    ascii: k
    html: k
    latex: k
    unicode: k
  base: 10
  power: 3

# Test case 2: Small SI prefix (micro)
NISTp10_-6:
  name: micro
  symbol:
    ascii: u
    html: "&amp;micro;"
    latex: "$mu$"
    unicode: μ
  base: 10
  power: -6

# Test case 3: Binary prefix (kibi)
NISTp2_10:
  name: kibi
  symbol:
    ascii: Ki
    html: Ki
    latex: Ki
    unicode: Ki
  base: 2
  power: 10</body></sourcecode>

</clause>

<clause id="_63102ae8-4c27-b7b0-daf0-08b2067047a9" obligation="normative">
<title id="_71e6211a-6c03-2a16-f4aa-eb12258e7b67">Unit system test cases</title>
<p id="_95a6edf0-edf4-08dd-69eb-3edfd2b27312">These test cases verify the correct implementation of the UnitSystem model:</p>

<sourcecode id="_58d01875-3f2b-9e06-d341-32e20ece6a3f" lang="yaml"><body># Test case 1: SI base unit system
- id: SI_base
  name: SI
  acceptable: true

# Test case 2: SI derived unit system (with special names)
- id: SI_derived_special
  name: SI
  acceptable: true

# Test case 3: Non-SI but acceptable unit system
- id: non-SI_acceptable
  name: non-SI
  acceptable: true

# Test case 4: Non-SI and not acceptable unit system
- id: non-SI_not_acceptable
  name: non-SI
  acceptable: false</body></sourcecode>

</clause>
</clause>

<clause id="_7f8bc0be-8779-fa56-0371-1025711a910a" obligation="normative">
<title id="_9060c459-751e-12e3-5275-2748527f0f9e">Cross-reference validation</title>
<p id="_96dc187d-c64f-f2e2-552c-fba18dad4b62">The following tests verify the integrity of cross-references across the UnitsDB files:</p>

<clause id="_bc3d1dec-f683-7c8b-c8c9-54a58b83f8dc" obligation="normative">
<title id="_22d10a92-7ee0-fc29-5b87-9b181442d58a">Dimension to quantity references</title>
<p id="_5472fc08-62f7-46c4-2c7b-bbecb331eb15">This test verifies that each dimension is referenced by at least one quantity:</p>

<sourcecode id="_b5cb0bda-6bcf-bd84-3ea6-f9273fd26350"><body># For each dimension NISTdX in dimensions.yaml:
# - Verify there exists at least one quantity in quantities.yaml where dimension_url: "#NISTdX"

NISTd1 (length) → Referenced by NISTq1 (length), NISTq48 (distance), etc.
NISTd2 (mass) → Referenced by NISTq2 (mass)
NISTd3 (time) → Referenced by NISTq3 (time)</body></sourcecode>

</clause>

<clause id="_9a3d7353-0f51-7890-0d82-77e1fc68664e" obligation="normative">
<title id="_13ab36db-4d54-d31f-9eb9-7612ab2f929d">Quantity to unit references</title>
<p id="_5a4e8a74-59f6-8b14-fa5f-ab2db17471b9">This test verifies that each quantity references valid units:</p>

<sourcecode id="_193a0f63-aaca-2df6-16fa-f8eb520f7696"><body># For each quantity NISTqX in quantities.yaml:
# - For each unit_reference, verify that the referenced unit exists in units.yaml

NISTq1 (length) → References NISTu1 (meter), NISTu78 (foot), etc.
NISTq12 (velocity) → References NISTu1.u3e-1/1 (meter per second), NISTu160 (kilometer per hour)</body></sourcecode>

</clause>

<clause id="_04e7c1d4-9041-45d6-2202-1ad8d5e1c3dc" obligation="normative">
<title id="_738221e6-b2ee-9b67-7624-c9f1132e0d29">Unit to quantity references</title>
<p id="_911f7016-11da-006f-b9dc-1ee25a3decaa">This test verifies that each unit references valid quantities:</p>

<sourcecode id="_ea7098a3-71ce-b4bc-fe5c-79d37c859f90"><body># For each unit NISTuX in units.yaml:
# - For each quantity_reference, verify that the referenced quantity exists in quantities.yaml

NISTu1 (meter) → References NISTq1 (length)
NISTu1.u3e-1/1 (meter per second) → References NISTq12 (velocity)</body></sourcecode>

</clause>
</clause>

<clause id="_02266bf3-f0ca-cb79-6d6d-a9ebef666ce6" obligation="normative">
<title id="_2b3c7f6f-f864-8935-ac17-260dd663c186">Validation techniques</title>
<p id="_d290ade4-40a3-5dcb-a5f0-c155cd794f3e">The following techniques can be used to validate UnitsDB data files:</p>

<clause id="_ee412f13-02eb-a7f4-0540-ef6cfeda9d8d" obligation="normative">
<title id="_e9764c7c-8afc-69e9-187b-b360459f7c97">Schema validation</title>
<p id="_adb38aff-5d1b-56c8-8269-d63b6444abac">YAML schema validation can be performed to ensure that each file adheres to the expected structure. This includes checking:</p>

<ul id="_a2783f32-98df-d2f9-3f1a-ad26ee2d3df5"><li><p id="_8adcdce2-4236-5604-1b18-712acfa5ec06">Required fields are present</p>
</li>
<li><p id="_45df1cce-7f73-ca55-18e0-83d124b8408e">Field types are correct</p>
</li>
<li><p id="_307727c2-57dc-fd56-dba1-ce1c5cd99b96">Enumerated values are valid</p>
</li>
</ul>
</clause>

<clause id="_dc10b311-0900-4679-c87d-4e82c4d5fc7e" obligation="normative">
<title id="_ab39da29-44d8-7561-811c-ff438bd56183">Reference integrity validation</title>
<p id="_2cb0edf6-94ef-7539-c4a3-624edcda4f70">Reference integrity validation ensures that all cross-references between entities are valid:</p>

<ul id="_36adc465-a2fa-f2b1-5ed8-0bbda610d99e"><li><p id="_26433e79-b0bf-f2cc-0838-3725cdd06613">Verify dimension references from quantities</p>
</li>
<li><p id="_733692c4-f37f-ed69-22b6-2942371c3c47">Verify unit references from quantities</p>
</li>
<li><p id="_df6af0c5-fbfd-5214-6b8d-cb918226751d">Verify quantity references from units</p>
</li>
<li><p id="_5e707af3-0048-fe9f-764a-d821ed43c736">Verify dimension references from units</p>
</li>
</ul>
</clause>

<clause id="_96bd3d38-2802-d7dd-2ae3-b6f9368cd3e0" obligation="normative">
<title id="_9f24b9b8-8852-928c-8a42-2f881a56b7a7">Dimensional consistency validation</title>
<p id="_93a027fb-3f2c-4346-0f2b-b6c05518bb2e">Dimensional consistency validation ensures that the dimensional relationships are mathematically consistent:</p>

<ul id="_586a545b-55b8-c669-8c5a-fa9dd6ee95fd"><li><p id="_b3303f35-fd98-4135-74ef-8a10ed24b4dd">Verify that units have the same dimension as their referenced quantities</p>
</li>
<li><p id="_f0809cfe-f1e0-a569-b956-084cbda30944">Verify that derived dimensions have correct combinations of base dimensions</p>
</li>
<li><p id="_3bd72552-2c13-b819-fb89-529fef7ab4cc">Verify that derived units have correct combinations of root units</p>
</li>
</ul>
</clause>

<clause id="_e33614dc-7545-01d6-459b-e2d59cae9ffa" obligation="normative">
<title id="_1833362f-ff8e-a989-da18-6f8090d0a8fe">Normalization rule validation</title>
<p id="_52b5791a-8099-0c8d-b02d-6eb6e24973f4">Validation of normalization rules ensures that the data adheres to the specific formatting and structural requirements:</p>

<ul id="_e9fb1029-9e69-1359-ef14-5a2ecd2eee36"><li><p id="_dc2f6f5c-781d-27ac-1a69-f25123fa1538">Verify naming conventions for identifiers</p>
</li>
<li><p id="_51942255-55a8-254e-a637-6c88506e37bf">Verify the structure of root_units for derived units</p>
</li>
<li><p id="_f3c48f12-f559-3f07-989d-031f498538ca">Verify the correct use of prefixes</p>
</li>
<li><p id="_ae76b1d1-f062-b021-a99f-9c706a9fcb61">Verify unit system categorization</p>
</li>
</ul>

<p id="_6ca8a77e-2a8f-02e5-fa2d-ef74a2c9c7ce">These test cases and validation techniques provide a comprehensive framework for ensuring the integrity and correctness of the UnitsDB database.</p>
</clause>
</clause>
</annex><bibliography><references id="_074e6f27-987f-d412-b77d-cb516a95c40e" normative="true" obligation="informative">
<title id="_461cd77a-5cfe-f57e-70ab-04e5c4142c2b">Normative references</title><p id="_02b1c060-f2f9-4bc4-035d-e49887f749e3">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
<bibitem id="_1b5b2cab-0fb9-461c-1c61-7cb43c198e17" type="standard" schema-version="v1.5.6" anchor="SI_Brochure">
  <fetched>2026-11-05</fetched>
  
<title language="en" type="title-main">The International System of Units</title>

  
<title language="en" type="title-cover">The International System of Units (SI)</title>

  
<title language="fr" type="title-main">Le Système international d’unités</title>

  
<title language="fr" type="title-cover">Le Système international d’unités (SI)</title>

  <docidentifier type="BIPM" primary="true">BIPM SI Brochure sur le SI 9e v3.01 (2019/2024, F)</docidentifier>
  <docidentifier type="ISBN">978-92-822-2272-0</docidentifier>
  <docidentifier type="BIPM" primary="true">BIPM SI Brochure 9e v3.01 (2019/2024, E)</docidentifier>
  <docnumber>SI Brochure 9e v3.01 (2019/2024, E)</docnumber>
  <date type="updated">
    <on>2024-08-28</on>
  </date>
  <contributor>
    <role type="author"/>
    <organization>
      
<name>Bureau international des poids et mesures</name>

      <abbreviation>BIPM</abbreviation>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>Bureau international des poids et mesures</name>

      <subdivision type="Committee">
        
<name language="en">International Bureau of Weights and Measures</name>

        
<name language="fr">Bureau International des Poids et Mesures</name>

        <identifier>BIPM</identifier>
        <identifier type="full">BIPM</identifier>
      </subdivision>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>Bureau international des poids et mesures</name>

      <abbreviation>BIPM</abbreviation>
    </organization>
  </contributor>
  <edition>9</edition>
  <version>v3.01</version>
  <language>fr</language>
  <language>en</language>
  <script>Latn</script>
  <status>
    <stage>in-force</stage>
  </status>
  <copyright>
    <from>2024</from>
    <owner>
      <organization>
        
<name>Bureau international des poids et mesures</name>

        <abbreviation>BIPM</abbreviation>
      </organization>
    </owner>
  </copyright>
</bibitem>
</references></bibliography>
</metanorma>
