-
Notifications
You must be signed in to change notification settings - Fork 10
/
ucum.xml
2113 lines (2104 loc) · 402 KB
/
ucum.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?><!-- COPYRIGHT 1998-2024, REGENSTRIEF INSTITUTE, INC. AND THE UCUM ORGANIZATION ALL RIGHTS RESERVED.
Use and redistribution of this data is permitted without charge
as long as you make no changes to it. DO NOT CHANGE THIS FILE if
you want to redistribute it. For any issues that you think you
need to change this file, please create a new issue on the
GitHub repository at <https://github.com/ucum-org/ucum>, or
contact Regenstrief Institute using the [email protected] address.
--><spec xmlns:u="http://aurora.regenstrief.org/UCUM"><header><title>The Unified Code for Units of Measure</title><version>2.2</version><revision>N/A</revision><date>2024-06-17</date><authlist><author><name>Gunther Schadow</name><affiliation>Pragmatic Data LLC</affiliation><email href="[email protected]"/></author><author><name>Clement J. McDonald</name><affiliation>National Library of Medicine, Lister Hill</affiliation><email href="[email protected]"/></author></authlist><copyright>1998-2024, Regenstrief Institute, Inc. and the UCUM Organization. All rights reserved.</copyright></header><body><div1 id="section-introduction"><head>Introduction</head><p><emph>The Unified Code for Units of Measure</emph> is a code system intended to include <emph>all</emph> units of
measures being contemporarily used in international science,
engineering, and business. The purpose is to facilitate unambiguous
electronic communication of quantities together with their units. The
focus is on electronic communication, as opposed to communication
between humans. A typical application of <emph>The Unified Code for Units of Measure</emph> are electronic data
interchange (EDI) protocols, but there is nothing that prevents it
from being used in other types of machine communication.
</p><p><emph>The Unified Code for Units of Measure</emph> is inspired by and heavily based on ISO 2955-1983, ANSI
X3.50-1986, and HL7's extensions called “ISO+”. The
respective ISO and ANSI standards are both entitled
“Representation of [...] units in systems with limited
character sets” where ISO 2955 refers to SI and other units
provided by ISO 1000-1981, while ANSI X3.50 extends ISO 2955 to
include U.S. customary units. Because these standards carry the
restriction of “limited character sets” in their names
they seem to be of less value today, when graphical user interfaces and
laser printers are in wide-spread use. For this reason, the European
standard ENV 12435 in its clause 7.3 declares ISO 2955 obsolete.
</p><p>
ENV 12435 is dedicated exclusively to the communication of
measurements between humans in display and print, and does not provide
codes that can be used in communication between systems. It does not
even provide a specification that would allow communication of units
from one system to the screen or printer of another system. The issue
about displaying units in the common style defined by the 9th
<emph>Conférence Générale des Poids et Mesures</emph>
(CGPM) in 1947 is not just the character set. Although the
<emph>Unicode</emph> standard and its predecessor ISO/IEC 10646 is
the richest character set ever, it is still not enough to specify the
presentation of units, because there are important typographical
details such as superscripts, subscripts, roman and
italics.<footnote><p>
Interestingly the authors of ENV 12435 forgot to include
superscripts in the minimum requirements as given by subclause 7.1.4
for which they do not specify an alternative.
</p></footnote></p><p>
The real value of the restriction on the character set and
typographical details, however, is not to cope with legacy systems and
less powerful technology, but to facilitate unambiguous communication
and interpretation of the meaning of units from one computer system to
another. In this respect, ISO 2955 and ANSI X3.50 are not
obsolete because there is no other standard that would fill in for
inter-systems communication of units. However, ISO 2599 and ANSI
X3.50 currently have severe defects:
</p><list role="ordered"><item><p>
ISO 2955 and ANSI X3.50 contain numerous name conflicts,
both direct conflicts (e.g., “<code>a</code>” being used
for both “year” and “are”) and conflicts
that are generated through combination of unit symbols with prefixes
(e.g., “<code>cd</code>” means candela and centi-day and
“<code>PEV</code>” means peta-volt and pico-electronvolt.)
</p></item><item><p>
Neither ISO 2955 nor ANSI X3.50 cover all units that are
currently used in practice. There are many more units in use than what
is allowed by the <emph>Système International
d'Unités</emph> (SI) and accompanying standards. For example,
the older CGM-units dyne and erg are still used in the science of
physiology. Although ANSI X3.50 extends ISO 2955 with some
U.S. customary units, it is still not complete in this respect. For
example it does not define the degree Fahrenheit.
</p></item><item><p>
ANSI X3.50 is semantically ambiguous with respect to customary
units, even if we do not consider the history and international
aspects of customary units. Three systems of mass units are used in
the U.S., avoirdupois used generally, apothecaries' used by
pharmacists, and troy used in trade with Gold and other precious
metals. ANSI X3.50 has no way to select any one of those
specifically, which is bad in medicine, where both apothecaries' and
avoirdupois weights are being used frequently.
</p></item></list><p>
ISO 2955 and all standards that do only look for the resolutions
and recommendations of the CGPM and the <emph>Comité
International des Poids et Mesures</emph> (CIPM) as published by the
<emph>Bureau International des Poids et Mesures</emph> (BIPM) and various
ISO standards (ISO 1000 and ISO 31) fail to recognize that
the needs in practice are often different from the ideal propositions
of the CGPM. Although not allowed by the CGPM and related ISO
standards, many other units are used in international sciences,
healthcare, engineering, and business, both meaningfully and some
units of questionable meaning. A coding system that is to be useful in
practice must cover the requirements and habits of the
practice—even some of the bad habits.
</p><p>
None of the current standards attempt to specify a semantics of units
that can be deployed in information systems with moderate
requirements. Metrological standards such as those published by the
BIPM are dedicated to maximal scientific correctness of reproducible
definitions of units. These definitions make sense only to human
specialists and can hardly be deployed to their full extent by any
information system that is not dedicated to metrology. On the other
hand, ISO 2955 and ANSI X3.50 provide no semantics at all for the
codes they define.
</p><p><emph>The Unified Code for Units of Measure</emph> provides a single coding system for units that is complete,
free of all ambiguities, and that assigns to each defined unit a
concise semantics. In communication it is not only important that all
communicating parties have the same repertoire of symbols, but also that
all attach the same meaning to the symbols they exchange. The common
meaning must be computationally verifiable. <emph>The Unified Code for Units of Measure</emph> assumes a
semantics for units based on dimensional analysis.<footnote><p>
A more extensive introduction into this semantics of units can be
found in: Schadow G, McDonald CJ et al: Units of Measure in Clinical
Information Systems; <it>JAMIA</it> 6(2); Mar/Apr 1999;
p. 151–162.
</p></footnote></p><p><!-- FIXME this paragraph is a lump: we need Roadmap, scope, etc. -->
In short, each unit is defined relative to a system of base units by a
numeric factor and a vector of exponents by which the base units
contribute to the unit to be defined. Although we can reflect all the
meaning of units covered by dimensional analysis with this vector
notation, the following tables do not show these vectors. One reason
is that the vectors depend on the base system chosen and even on the
ordering of the base units. The other reason is that these vectors are
hard to understand to human readers while they can be easily derived
computationally. Therefore we define new unit symbols using algebraic
terms of other units. Those algebraic terms are also valid codes of
<emph>The Unified Code for Units of Measure</emph>.
</p></div1><div1><head>Grammar of Units and Unit Terms</head><p name="preliminaries"><emph role="strong"><anchor id="para-1">§1</anchor> preliminaries</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph><emph>The Unified Code for Units of Measure</emph> consists of a basic set of terminal symbols for units, called
<emph>atomic unit symbols</emph> or <emph>unit atoms</emph>, and multiplier
prefixes. It also consists of an expression syntax by which these
symbols can be combined to yield valid units.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
The tables of terminal symbols are fixed as of every revision of
<emph>The Unified Code for Units of Measure</emph>, additions, deletions or changes are <emph>not</emph> allowed.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
All expression that can be derived from these terminal symbols and the
expression syntax are valid codes. Any expression of <emph>The Unified Code for Units of Measure</emph> has a
precisely defined semantics.
</p><comment><p class="comment">
The expression syntax of <emph>The Unified Code for Units of Measure</emph> generates an infinite number of codes
with the consequence that it is impossible to compile a table of all
valid units.
</p><p class="comment">
That the tables of terminal symbols may not be extended does not mean
that missing symbols will never be available in <emph>The Unified Code for Units of Measure</emph>. Suggestions
for additions of new symbols are welcome and revisions of
<emph>The Unified Code for Units of Measure</emph> will be released as soon as a change request has been approved.
</p></comment><p name="full and limited conformance"><emph role="strong"><anchor id="para-2">§2</anchor> full and limited conformance</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
The semantics of <emph>The Unified Code for Units of Measure</emph> implies equivalence classes such that
different expressions may have the same meaning.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
Programs that declare <emph>full conformance</emph> with <emph>The Unified Code for Units of Measure</emph> must
compare unit expressions by their semantics, i.e. they must detect
equivalence for different expressions with the same meaning.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Programs with <emph>limited conformance</emph> may compare unit expressions
literally and thus may not detect equivalence of unit expressions.
</p><comment><p class="comment">
The option for “limited conformance” allows <emph>The Unified Code for Units of Measure</emph> to be adopted
even by less powerful systems that can not or do not want to deal with
the full semantics of units. Those systems typically have a table of
fixed unit expression literals that may be related to other literals
with fixed conversion factors. Although these systems will have
difficulties to receive unit expressions from various sources, they
will at least send out valid expressions of <emph>The Unified Code for Units of Measure</emph>, which is an
important step towards a commonly used coding scheme for units.
</p></comment><div2><head>Character Set and Lexical Rules</head><p name="character set"><emph role="strong"><anchor id="para-3">§3</anchor> character set</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> All expressions of <emph>The Unified Code for Units of Measure</emph> shall be built from characters of
the 7-bit US-ASCII character set exclusively.
<emph role="strong"><emph role="sup"> ■2</emph></emph> Terminal unit symbols can consist of all ASCII characters in
the range of 33–126 (0x21–0x7E) excluding
double quotes (‘<code>"</code>’),
parentheses (‘<code>(</code>’ and ‘<code>)</code>’),
plus sign (‘<code>+</code>’'),
minus sign (‘<code>-</code>’'),
period (‘<code>.</code>’'),
solidus (‘<code>/</code>’'),
equal sign (‘<code>=</code>’'),
square brackets (‘<code>[</code>’
and ‘<code>]</code>’), and
curly braces (‘<code>{</code>’ and ‘<code>}</code>’),
which have special meaning.
<emph role="strong"><emph role="sup"> ■3</emph></emph> A terminal unit symbol can not consist of only digits
(‘<code>0</code>’–‘<code>9</code>’) because
those digit strings are interpreted as positive integer
numbers. However, a symbol “<code>10*</code>” is allowed
because it ends with a non-digit allowed to be part of a symbol.
<emph role="strong"><emph role="sup"> ■4</emph></emph> For every terminal symbol there is a case insensitive variant
defined, to be used when there is a risk of upper and lower case to be
confused. Although upper and lower case can be mixed in case
insensitive symbols there is no meaning to the case. Case insensitive
symbols are incompatible to the case sensitive symbols.
</p><comment><p class="comment">
The 7-bit US-ASCII character code is the greatest common denominator
that can be expected to be available in any communication environment.
Only very few units normally require symbols from the Greek alphabet
and thus the cost of requiring Unicode does not outweigh the benefit.
As explained above, the real issue about writing unit terms naturally
is not the character set but the ability to write subscripts and
superscripts and distinguish roman letters from italics.
</p><p class="comment">
Some computer systems or programming languages still have the
requirement of case insensitivity and some humans who are not familiar
with SI units tend to confuse upper and lower case or can not
interpret the difference in upper and lower case correctly. For this
reason the case insensitive symbols are defined. Although <emph>The Unified Code for Units of Measure</emph>
does not encourage use of case insensitive symbols where not
absolutely necessary, in some circumstances the case insensitive
representation may be the greatest common denominator. Thus some
systems that can handle case sensitivity may end up using case
insensitive symbols in order to communicate with less powerful
systems.
</p><p class="comment">
ISO 2955 and ANSI X3.50 call case sensitive symbols “mixed
case” and case insensitive symbols “single case” and
list two columns for “single case” symbols, one for upper
case and one for lower case. In <emph>The Unified Code for Units of Measure</emph> all units can be written in
mixed upper and lower case, but in the case insensitive variant the
mixing of case does not matter.
</p><p class="comment">
White space is not recognized in a a unit term and should generally
not occur. UCUM implementations may flag whitespace as an error
rather than ignore it. Whitespace is not used as a separator of
otherwise ambiguous parts of a unit term.
</p></comment><p name="prefixes"><emph role="strong"><anchor id="para-4">§4</anchor> prefixes</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>Metric units (cf. <termref ref="para-11">§11</termref>) may be
combinations of a unit symbol with a prefix symbol.
<emph role="strong"><emph role="sup"> ■2</emph></emph>The unit symbol to be combined with the prefix must not itself
contain a prefix. Such a prefix-less unit symbol is called <emph>unit
atom</emph>.
<emph role="strong"><emph role="sup"> ■3</emph></emph>Prefix and atom are connected immediately without any
delimiter. Separation of an optional prefix from the atom occurs on
the lexical level by finding a matching combination of an optional
prefix and a unit atom.
<emph role="strong"><emph role="sup"> ■4</emph></emph> The prefix is the longest leading substring that matches a
valid prefix where the remainder is a valid metric unit atom. If no
such prefix can be matched, the unit atom is without prefix and may be
both metric or non-metric.<emph role="small">[1–3: ISO 1000, 3; ISO 2955-1983, 3.7;
ANSI X3.50-1986, 3.7 (Rule No. 6).]</emph></p><p name="square brackets"><emph role="strong"><anchor id="para-5">§5</anchor> square brackets</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> Square brackets (‘<code>[</code>’ and
‘<code>]</code>’) may be part of a
unit atom at any place but only as matched pairs. Square brackets are
lexical elements and not separate syntactical tokens. <emph role="strong"><emph role="sup"> ■2</emph></emph> Within a matching pair of square brackets the full range of
characters 33–126 can be used.<footnote><p>
see the section about style in <termref ref="para-12">§§12ff</termref>, to find out
how square brackets are actually used. Note, however, that the user
has no choice about square bracket symbols, as these are fixed in the
list of atomic unit symbols.
</p></footnote> <emph role="strong"><emph role="sup"> ■3</emph></emph> Square brackets do <emph>not</emph> determine the boundary between
prefix and unit atom, but they never span the boundary of unit atoms.
<emph role="strong"><emph role="sup"> ■4</emph></emph>
Square brackets must not be nested.
</p><comment><p class="comment">
For example
%
“<code>[abc+ef]</code>”,
“<code>ab[c+ef]</code>”,
“<code>[abc+]ef</code>”, and
“<code>ab[c+ef]</code>”
%
could all be valid symbols if defined in the tables.
In “<code>ab[c+ef]</code>” either
“<code>a</code>” or “<code>ab</code>”
could be defined as a prefix, but not “<code>ab[c</code>”.
</p><p class="comment">
Square brackets take on one task of round parentheses in HL7's
“ISO+” code, where one use of parentheses is to augment
unit symbols with suffixes, as in “<code>mm(Hg)</code>”.
Another use is to enclose one full unit symbol into parentheses, as
“<code>(ka_u)</code>” (for the King-Armstrong unit of
catalytic amount of phosphatase). Apparently, in a unit symbol such
enclosed one is supposed not to expect a prefix. Thus, even if
“<code>a_u</code>” would have been defined,
“<code>(ka_u)</code>” should not be matched against
kilo-<code>a_u</code>.
</p><p class="comment">
Parentheses, however, were also used for the nesting of terms since
HL7 version 2.3. At this point it became ambiguous whether parentheses
are part of the unit symbol or whether they are syntactic tokens. For
instance, “<code>(ka_u)</code>” could mean a nested
“<code>ka_u</code>” (where “<code>k</code>”
could possibly be a prefix), but also the proper symbol
“<code>(ka_u)</code>” that happens to have parentheses as
part of the symbol. <emph>The Unified Code for Units of Measure</emph> uses parentheses for the usual meaning of
term nesting and uses square brackets where HL7's “ISO+”
assumes parentheses to be part of the unit symbol.
</p></comment><p name="curly braces"><emph role="strong"><anchor id="para-6">§6</anchor> curly braces</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> The full range of characters 33–126 can be used within a
pair of curly braces (‘<code>{</code>’ and
‘<code>}</code>’). The material enclosed in curly braces is
called <emph>annotation</emph>.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
Annotations do not contribute to the semantics of the unit but are
meaningless by definition. Therefore, any fully conformant parser must
discard all annotations. Parsers of limited conformance <emph>should</emph>
not value annotations in comparison of units.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Annotations do, however, signify the end of a unit symbol.
<emph role="strong"><emph role="sup"> ■4</emph></emph> An annotation without a leading symbol implies the default
unit <unit>1</unit> (the unity).
<emph role="strong"><emph role="sup"> ■5</emph></emph>
Curly braces must not be nested.
</p><comment><p class="comment">
Curly braces are here because people want annotations and deeply
believe that they need annotations. Especially in chemistry and
biomedical sciences, there are traditional habits to write annotations
at units or instead of units, such as “%vol.”,
“RBC”, “CFU”, “kg(wet tis.)”, or
“mL(total)”. These habits are hard to overcome. Any
attempt of a coding scheme to restrict this perceived expressiveness
will ultimately result in the coding scheme not being adopted, or just
“half-way” adopted (which is as bad as not adopted).
</p><p class="comment">
Two alternative responses to this reality exist: either give in to the
bad habits and blow up of the code with dimension- and meaningless
unit atoms, or canalize this habit so that it does no harm. <emph>The Unified Code for Units of Measure</emph>
canalizes this habit using curly braces. Nevertheless we do continuing
efforts to upgrade doubtful units to genuine units of <emph>The Unified Code for Units of Measure</emph> by
defining and linking them to the other units as good as
possible. Thus, “<code>g%</code>” is a valid metric unit
atom (so that “<code>mg%</code>” is a valid unit too.)
A <emph>drops</emph>, although quite imprecise, is a valid unit of volume
“<code>[drp]</code>”. Even HPF and LPF (the so called
“high-” and “low power field” in the
microscope) have been defined so that at least they relate to each
other.
</p></comment></div2><div2><head>Syntax Rules</head><p name="algebraic unit terms"><emph role="strong"><anchor id="para-7">§7</anchor> algebraic unit terms</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> All units can be combined in an algebraic term using the
operators for multiplication (period ‘<code>.</code>‘) and
division (solidus ‘<code>/</code>’). <emph role="strong"><emph role="sup"> ■2</emph></emph> The multiplication operator is mandatory it must not be
omitted or replaced by a space. The multiplication operator is a
strict binary operator that may occur only <emph>between two</emph> unit
terms. <emph role="strong"><emph role="sup"> ■3</emph></emph> The division operator can be used as a binary and unary
operator, i.e. a leading solidus will invert the unit that directly
follows it. <emph role="strong"><emph role="sup"> ■4</emph></emph> Terms are evaluated from left to right with the period and the
solidus having the same operator precedence. Multiple division
operators are allowed within one term. <emph role="small">[ISO 1000, 4.5.2; ISO 2955-1983, 3.3f; ANSI X3.50-1986, 3.3f
(Rule No. 2f).]</emph></p><comment><p class="comment">
The use of the period instead of the asterisk
(‘<code>*</code>’) as a multiplication operator continues a
tradition codified in ISO 1000 and maintained in ISO 2955. Because
floating point numbers may not occur in unit terms the period is not
ambiguous. A period in a unit term has no other meaning than to be the
multiplication operator.
</p><p class="comment">
Since Resolution 7 of the 9th CGPM in 1948 the myth of ambiguity being
introduced by more than one solidus lives on and is quoted in all
standards concerning the writing of SI units. However, when the strict
left to right rule is followed there is no ambiguity, neither with one
solidus nor with more than one solidus. However, in human practice we
find the tendency to assign a lower precedence to the solidus which
misleads people to write <emph>a</emph>/<emph>b</emph>·<emph>c</emph> when they
really mean <emph>a</emph>/(<emph>b</emph>·<emph>c</emph>). When this is
rewritten as <emph>a</emph>/<emph>b</emph>/<emph>c</emph> there is actually less
ambiguity that in <emph>a</emph>/<emph>b</emph>·<emph>c</emph>. So the real
source of ambiguity is when a multiplication operator follows a
solidus, not when there is more than one solidus in a term. Hence, we
remove the restriction for only one solidus and introduce parentheses
which may be used to remove any perceived ambiguity.
</p></comment><p name="integer numbers"><emph role="strong"><anchor id="para-8">§8</anchor> integer numbers</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> A positive integer number may appear in place of a simple unit
symbol. <emph role="strong"><emph role="sup"> ■2</emph></emph> Only a pure string of decimal digits
(‘<code>0</code>’–‘<code>9</code>’)
is interpreted as a number. If after one or more digits there is any
non-digit character found that is valid for unit atoms, all the
characters (including the digits) will be interpreted as a simple unit
symbol.
</p><comment><p class="comment">
For example, the string “<code>123</code>” is a positive
integer number while “<code>12a</code>” is a symbol.
</p><p class="comment">
Note that the period is only used as a multiplication operator, thus
“<code>2.5</code>” means 2 × 5 and is not equal to 5/2.
</p></comment><p name="exponents"><emph role="strong"><anchor id="para-9">§9</anchor> exponents</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> Simple units may be raised to a power. The exponent is an
integer number and is written immediately behind the unit
term. Negative exponents must be preceded by a minus sign
(‘<code>-</code>’ positive exponents may be preceded by an
optional plus sign (‘<code>+</code>’). <emph role="strong"><emph role="sup"> ■2</emph></emph> If the simple unit raised to a power is a combination of a
prefix and a unit atom, both are raised to the power, e.g. “1
<code>cm3</code>” equals “10<emph role="sup">-6</emph><code>m3</code>” not “10<emph role="sup">-2</emph><code>m3</code>”.
<emph role="small">[ISO 2955-1983, 3.5f; ANSI X3.50-1986, 3.5f (Rule
No. 4f).]</emph></p><comment><p class="comment">
ISO 2955 and ANSI X3.50 actually do not allow a plus sign leading a
positive exponent. However, if there can be any perceived ambiguities,
an explicit leading plus sign may be of help sometimes. <emph>The
Unified Code for Units of Measures</emph> therefore allows such plus signs
at exponents. The plus sign on positive exponents can be used to
delimit exponents from integer numbers used as simple units. Thus,
<code>2+10</code> means 2<emph role="sup">10</emph> = 1024.
</p></comment><p name="nested terms"><emph role="strong"><anchor id="para-10">§10</anchor> nested terms</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> Unit terms with operators may be enclosed in parentheses
(‘<code>(</code>’ and ‘<code>)</code>’) and used
in place of simple units. Normal left-to-right evaluation can be
overridden with parentheses. <emph role="strong"><emph role="sup"> ■2</emph></emph> Parenthesized terms are <emph>not</emph> considered unit atoms
and hence must not be preceded by a prefix. </p><comment><p class="comment">
Up until revision 1.9 there was a third clause
“Since a unit term in parenthesis can be used in place of
a simple unit, an exponent may follow on a closing parenthesis which
raises the whole term within the parentheses to the power.”
However this feature was inconsistent with any BNF or other syntax
description ever provided, was never used and seems to have no
relevant use case. For this reason this clause has been stricken.
This is a <emph>tentative</emph> change. Users who have used this
feature in the past, should please comment on this deprecation.
If we receive indication that this feature was used by anyone, we
would undo the deprecation. If no comments are received, the
deprecation continues to take effect.
</p></comment><exhibit role="exhibit"><table class="plain" border="0"><tr valign="top"><td><<emph>sign</emph>></td><td>::=</td><td>“<code>+</code>” | “<code>-</code>”</td></tr><tr valign="top"><td><<emph>digit</emph>></td><td>::=</td><td>“<code>0</code>” | “<code>1</code>” | “<code>2</code>” |
“<code>3</code>” | “<code>4</code>” | “<code>5</code>” |
“<code>6</code>” | “<code>7</code>” | “<code>8</code>” |
“<code>9</code>”</td></tr><tr valign="top"><td><<emph>digits</emph>></td><td>::=</td><td><<emph>digit</emph>><<emph>digits</emph>>
| <<emph>digit</emph>></td></tr><tr valign="top"><td><<emph>factor</emph>></td><td>::=</td><td><<emph>digits</emph>></td></tr><tr valign="top"><td><<emph>exponent</emph>></td><td>::=</td><td><<emph>sign</emph>><<emph>digits</emph>>
| <<emph>digits</emph>></td></tr><tr valign="top"><td><<emph>simple-unit</emph>></td><td>::=</td><td><<emph>ATOM-SYMBOL</emph>><br/>
| <<emph>PREFIX-SYMBOL</emph>><<emph>ATOM-SYMBOL[metric]</emph>></td></tr><tr valign="top"><td><<emph>annotatable</emph>></td><td>::=</td><td><<emph>simple-unit</emph>><<emph>exponent</emph>><br/>
| <<emph>simple-unit</emph>></td></tr><tr valign="top"><td><<emph>component</emph>></td><td>::=</td><td><<emph>annotatable</emph>><<emph>annotation</emph>><br/>
| <<emph>annotatable</emph>><br/>
| <<emph>annotation</emph>><br/>
| <<emph>factor</emph>><br/>
| “<code>(</code>”<<emph>term</emph>>“<code>)</code>”</td></tr><tr valign="top"><td><<emph>term</emph>></td><td>::=</td><td><<emph>term</emph>>“<code>.</code>”<<emph>component</emph>><br/>
| <<emph>term</emph>>“<code>/</code>”<<emph>component</emph>><br/>
| <<emph>component</emph>></td></tr><tr valign="top"><td><<emph>main-term</emph>></td><td>::=</td><td>“<code>/</code>”<<emph>term</emph>><br/>
| <<emph>term</emph>></td></tr><tr valign="top"><td><<emph>annotation</emph>></td><td>::=</td><td>“<code>{</code>”<<emph>ANNOTATION-STRING</emph>>“<code>}</code>”</td></tr></table><caption>
The complete syntax in the Backus-Naur Form.
</caption></exhibit><graphic source="graphics/https://raw.githubusercontent.com/ucum-org/ucum/main/assets/images/ucum-state-automaton.gif" alt="Pushdown-state automaton describing the syntax."/></div2><div2><head>The Predicate “Metric”</head><p id="para-metric" name="metric and non-metric unit atoms"><emph role="strong"><anchor id="para-11">§11</anchor> metric and non-metric unit atoms</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> Only metric unit atoms may be combined with a prefix.
<emph role="strong"><emph role="sup"> ■2</emph></emph> To be metric or not to be metric is a predicate assigned to
each unit atom where that unit atom is defined.
<emph role="strong"><emph role="sup"> ■3</emph></emph> All base units are metric. No non-metric unit can be part of
the basis.
<emph role="strong"><emph role="sup"> ■4</emph></emph> A unit must be a quantity on a ratio scale in order to be
metric.
</p><comment><p class="comment">
The metric predicate accounts for the fact that there are units that
are prefixed and others that are not. This helps to disambiguate the
parsing of simple units into prefix and atom.
</p><p class="comment">
To determine whether a given unit atom is metric or not is not
trivial. It is a cultural phenomenon, subject to change, just like
language, the meaning of words and how words can be used. At one time
we can clearly tell right or wrong usage of words, but these
decisions may need to be revised with the passage of time.
</p><p class="comment">
Generally, metric units are those defined “in the spirit”
of the metric system, that emerged in France of the 18th century and
was rapidly adopted by scientists. Metric units are usually based on
reproducible natural phenomena and are usually not part of a system of
comparable units with different magintudes, especially not if the
ratios of these units are not powers of 10. Instead, metric units use
multiplier prefixes that magnify or diminish the value of the unit
by powers of ten.
</p><p class="comment">
Conversely, customary units are in the spirit of the middle age as
most of them can be traced back into a time around the 10th century,
some are even older from the Roman and Babylonian empires. Most
customary units are based on the average size of human anatomical or
botanic structures (e.g., foot, ell, fathom, grain, rod) and come in
series of comparable units with ratios 1/2, 1/4, 1/12, 1/16, and
others. Thus all customary units are non-metric
</p><p class="comment">
Not all units from ISO 1000 are metric as degree, minute and second of
plane angle are non-metric as well as minute, hour, day, month, and
year. The second is a metric unit because it is a part of the SI
basis, although it used to be part of a series of customary units
(originating in the Babylonian era).
</p><p class="comment">
Furthermore, for a unit to be metric it must be a quantity on a ratio
scale where multiplication and division with scalars are defined. The
<emph>Comité Consultatif d'Unités</emph> (CCU) decided
in February 1995 that SI prefixes may be used with the degree
Celsius. This statement has not been made explicitly before. This is
an unfortunate decision because difference-scale units like the degree
Celsius have no multiplication operation, so that the prefix value
could be multiplied with the unit. Instead the prefix at non-ratio
units scales the measurement value. One dekameter is 10 times of a
meter, but there is no meaning to 10 times of 1 °C in the
same way as 30 °C are not 3 times as much as
10 °C. See <termref ref="para-21">§§21ff</termref> on how <emph>The Unified Code for Units of Measure</emph> finds a
way to accommodate this different use of prefixes at units such as the
degree Celsius, bel or neper.
</p></comment></div2><div2><head>Style</head><comment><p class="comment">
Except for the rule on curly braces (<termref ref="para-12">§12</termref>), the
rules on style govern the creation of the tables of unit atoms not
their individual use. Users of <emph>The Unified Code for Units of Measure</emph> need not care about style rules
(<termref ref="para-13">§§13–15</termref>) because users
just use the symbols defined in the tables. Hence, style rules do not
affect conformance to <emph>The Unified Code for Units of Measure</emph>. New submissions of unit atoms, however,
must conform to the style rules.
</p></comment><p id="para-curly" name="curly braces"><emph role="strong"><anchor id="para-12">§12</anchor> curly braces</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Curly braces may be used to enclose annotations that are often written
in place of units or behind units but that do not have a proper
meaning of a unit and do not change the meaning of a unit.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
Annotations have no semantic value.
</p><comment><p class="comment">
For example one can write “<code>%{vol}</code>”,
“<code>kg{total}</code>”, or “<code>{RBC}</code>”
(for “red blood cells”) as pseudo-units. However, these
annotations do not have any effect on the semantics, which is why
these example expressions are equivalent to
“<code>%</code>”, “<code>kg</code>”, and
“<code>1</code>” respectively.
</p></comment><p id="para-underscore" name="underscore"><emph role="strong"><anchor id="para-13">§13</anchor> underscore</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> When in print a unit would have a subscript, an underscore
(‘<code>_</code>’) is used to separate the subscript from
the stem of the unit symbol. <emph role="strong"><emph role="sup"> ■2</emph></emph>
The subscript is part of the unit atom.
<emph role="strong"><emph role="sup"> ■3</emph></emph> subscripts are used to disambiguate the two units with the
same name but different meanings.</p><comment><p class="comment">
For example when distinguishing the International Table calorie from
the thermochemical calorie, we would use 1 cal<emph role="sub">IT</emph> or
1 cal<emph role="sub">th</emph> in print. <emph>The Unified Code for Units of Measure</emph> defines the symbols
“<code>cal_IT</code>” and
“<code>cal_th</code>” with the underscore signifying that
“IT” and “th” are subscripts. Other examples
are the distinctions between the Julian and Gregorian calendar year
from the tropical year or the British imperial gallon from the U.S.
gallon (see <termref ref="para-31">§31</termref> and <termref ref="para-37">§§37ff</termref>).
</p></comment><p name="square brackets"><emph role="strong"><anchor id="para-14">§14</anchor> square brackets</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> Square brackets enclose suffixes of unit symbols that change
the meaning of a unit stem.
<emph role="strong"><emph role="sup"> ■2</emph></emph> All customary units shall be enclosed completely by square
brackets.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Other unit atoms shall be enclosed in square brackets if they are very
rare, if they will conflict with other units, or if they are normally
not used as a unit symbol but do have a proper meaning as a unit in
<emph>The Unified Code for Units of Measure</emph>.
<emph role="strong"><emph role="sup"> ■4</emph></emph>
Square brackets are part of the unit atom.
</p><comment><p class="comment">
For example 1 m H<emph role="sub">2</emph>O is written as
“<code>m[H2O]</code>” in <emph>The Unified Code for Units of Measure</emph> because the suffix
H<emph role="sub">2</emph>O changes the meaning of the unit atom for meter (length)
to a unit of pressure.
</p><p class="comment">
Customary units are defined in <emph>The Unified Code for Units of Measure</emph> in order to accommodate
practical needs. However metric units are still preferred and the
customary symbols should not interfere with metric symbols in any
way. Thus, customary units are “stigmatized” by enclosing
them into square brackets.
</p><p class="comment">
If unit symbols for the purpose of display and print are derived from
<emph>The Unified Code for Units of Measure</emph> units, the square brackets can be removed. However, display
units are out of scope of <emph>The Unified Code for Units of Measure</emph>.
</p></comment><p id="para-apostrophe" name="apostrophe"><emph role="strong"><anchor id="para-15">§15</anchor> apostrophe</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
The apostrophe (‘<code>'</code>’) is used to separate words
or abbreviated words in a multi-word unit symbol.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
Since units are mathematically defined symbols and not abbreviations
of words, multi-word unit symbols should be defined only to reflect
existing habits, not in order to create new ones.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Multi-word units should always be enclosed in square brackets.
</p><comment><p class="comment">
For example, such legacy units called “Bodansky unit” or
“Todd unit” have the unit symbols
“<code>[bdsk'U]</code>”, and
“<code>[todd'U]</code>” respectively.
</p></comment></div2></div1><div1><head>Semantics</head><p name="preliminaries"><emph role="strong"><anchor id="para-16">§16</anchor> preliminaries</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> The semantics of <emph>The Unified Code for Units of Measure</emph> is defined by the algebraic
operations of multiplication, division and exponentiation between
units, by the equivalence relations of equality and commensurability
of units, and by the multiplication of a unit with a scalar.
<emph role="strong"><emph role="sup"> ■2</emph></emph> Every expression in <emph>The Unified Code for Units of Measure</emph> is mapped to one and only one
semantic element. But every semantic element may have more than one
valid representant in <emph>The Unified Code for Units of Measure</emph>.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
The set of expressions in <emph>The Unified Code for Units of Measure</emph> is infinite.
</p><p name="equality and commensurability"><emph role="strong"><anchor id="para-17">§17</anchor> equality and commensurability</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> The set of expressions in <emph>The Unified Code for Units of Measure</emph> has two binary, symmetric,
reflexive, and transitive relations (equivalence relations)
“equals” = and “is commensurable with”
~. All expressions that are equal are also commensurable but not
all commensurable expressions are equal.</p><p name="algebra of units"><emph role="strong"><anchor id="para-18">§18</anchor> algebra of units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> The equivalence classes generated by the equality relation =
are called <emph>units</emph>.
<emph role="strong"><emph role="sup"> ■2</emph></emph> The set of units <emph>U</emph> has a binary multiplication operator
· that is associative and commutative and has the neutral
element <emph role="strong">1</emph> (so called <emph>the unity</emph>). For each unit
<emph role="strong">u</emph> ∈ <emph>U</emph> there is an inverse unit
<emph role="strong">u</emph><emph role="sup">-1</emph> such that <emph role="strong">u</emph> ·
<emph role="strong">u</emph><emph role="sup">-1</emph> = <emph role="strong">1</emph>. Thus, (<emph>U</emph>, ·) is
an Abelian group.
<emph role="strong"><emph role="sup"> ■3</emph></emph> The division operation <emph role="strong">u</emph> / <emph role="strong">v</emph> is defined as
<emph role="strong">u</emph> · <emph role="strong">v</emph><emph role="sup">-1</emph>. <emph role="strong"><emph role="sup"> ■4</emph></emph> The exponentiation operation with integer exponents <emph>n</emph>
is defined as <emph role="strong">u</emph><emph role="sup"><emph>n</emph></emph> = <emph role="strong">Π</emph><emph role="sub">1</emph><emph role="sup">n</emph><emph role="strong">u</emph>.
<emph role="strong"><emph role="sup"> ■5</emph></emph>
The product <emph role="strong">u</emph>' = <emph>r</emph><emph role="strong">u</emph> of a real number scalar
<!-- <v>r</v> &element; \Re --> with the unit <emph role="strong">u</emph> is also a
unit, where <emph role="strong">u</emph>' ~ <emph role="strong">u</emph>.
</p><p id="para-dimension" name="dimension and magnitude"><emph role="strong"><anchor id="para-19">§19</anchor> dimension and magnitude</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> The equivalence classes generated by the commensurability
relation ~ are called <emph>dimensions</emph>. The set <emph>D</emph>
of dimensions is infinite in principle, but only a finite subset of
dimensions are used in practice. Thus, implementations of <emph>The Unified Code for Units of Measure</emph> need
not be able to represent the infinite set of dimensions.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
Two commensurable units that are not equal differ only by their
magnitude.
<emph role="strong"><emph role="sup"> ■3</emph></emph> The quotient <emph role="strong">u</emph> / <emph role="strong">v</emph> of any two commensurable
units <emph role="strong">u</emph> ~ <emph role="strong">v</emph> is of the same dimension as the
unity (<emph role="strong">u</emph> / <emph role="strong">v</emph> ~ <emph role="strong">1</emph>). This quotient is
also equal to the unity multiplied with a scalar <emph>r</emph><!--
&element; \Re -->: <emph role="strong">u</emph> / <emph role="strong">v</emph> = <emph>r</emph><emph role="strong">1</emph>,
where <emph>r</emph> is called the <emph>relative magnitude</emph> of
<emph role="strong">u</emph> regarding <emph role="strong">v</emph>.</p><p name="base units"><emph role="strong"><anchor id="para-20">§20</anchor> base units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Any system of units is constructed from a finite set <emph role="strong">B</emph> of
mutually independent base units <emph role="strong">B</emph> = {
<emph role="strong">b</emph><emph role="sub">1</emph>, <emph role="strong">b</emph><emph role="sub">2</emph>, ...,
<emph role="strong">b</emph><emph role="sub"><emph>n</emph></emph> }, on which any other unit <emph role="strong">u</emph>
∈ <emph>U</emph> is defined as <emph role="strong">u</emph> = <emph>r</emph><emph role="sub">1</emph><emph role="strong">b</emph><emph role="sub">1</emph><emph role="sup"><emph>u</emph><emph role="sub">1</emph></emph> ·
<emph>r</emph><emph role="sub">2</emph><emph role="strong">b</emph><emph role="sub">2</emph><emph role="sup"><emph>u</emph><emph role="sub">2</emph></emph> ·
... · <emph>r</emph><emph role="sub"><emph>n</emph></emph><emph role="strong">b</emph><emph role="sub"><emph>n</emph></emph><emph role="sup"><emph>u</emph><emph role="sub"><emph>n</emph></emph></emph>,
where <emph>r</emph> = <emph>r</emph><emph role="sub">1</emph> · <emph>r</emph><emph role="sub">2</emph>
·· · <emph>r</emph><emph role="sub"><emph>n</emph></emph> is called the
<emph>magnitude</emph> of the unit <emph role="strong">u</emph> regarding <emph role="strong">B</emph>.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
With respect to a basis <emph role="strong">B</emph> every unit can thus be
represented as a pair (<emph>r</emph>, <emph>û</emph>) of magnitude <emph>r</emph><!-- &element; \Re --> and dimension <emph>û</emph> =
(<emph>u</emph><emph role="sub">1</emph>, <emph>u</emph><emph role="sub">2</emph>, ...,
<emph>u</emph><emph role="sub"><emph>n</emph></emph>).
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Two sets of base units are equivalent if there is an isomorphism
between the sets of units that they generate.
</p><comment><p class="comment"><termref ref="para-19">§19</termref>.1 allows to limit the set of
supported dimensions. Most practically used units contain exponents of
-4 to +4.<!-- wrong: , some may contain -5, such as hemodynamic resistance measured
traditionally in 1 dyn·s/cm<sup>5</sup>.--> Thus if memory is
limited, 4 bit per component of the dimension vector could be
sufficient.
</p></comment><div2><head>Special Units on non-ratio Scales</head><p id="para-special" name="special units"><emph role="strong"><anchor id="para-21">§21</anchor> special units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Those symbols that are used as units that imply a measurement on a
scale other than a ratio scale (e.g., interval scale, logarithmic
scale) are defined differently. These do not represent proper units as
elements of the group (<emph>U</emph>,·). Therefore those special
semantic entities are called <emph>special units</emph>, as opposed to
<emph>proper units</emph>. The set of special units is denoted
<emph>S</emph>, where <emph>S</emph> ∩ <emph>U</emph> = {}.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
A special unit <emph role="strong">s</emph> ∈ <emph>S</emph> is defined as
the triple (<emph role="strong">u</emph>, <emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph>,
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph>) where <emph role="strong">u</emph>
∈ <emph>U</emph> is the “corresponding” proper unit of
<emph role="strong">s</emph> and where <emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph> and
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph> are mutually inverse
real functions converting the measurement value to and from the
special unit.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Although not elements of <emph>U</emph>, special units are said to be
“of the same dimension” or “commensurable
with” their corresponding proper unit <emph role="strong">u</emph> and the class
of units commensurable with <emph role="strong">u</emph>. This can be expressed by means
of a binary, symmetric, transitive and reflexive relation ≈
on <emph>U</emph> ∪ <emph>S</emph>.
</p><comment><p class="comment">
The functions <emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph> and
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph> are applied as follows: let
<emph>r</emph><emph role="sub"><emph role="strong">s</emph></emph> be the numeric measurement value
expressed in the special unit <emph role="strong">s</emph> and let <emph>m</emph> be the
corresponding dimensioned quantity, i.e., the measurement with proper
unit <emph role="strong">u</emph>. Now, <emph>r</emph><emph role="sub"><emph role="strong">s</emph></emph> =
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph>(<emph>m</emph>/<emph role="strong">u</emph>) converts the proper
measurement to the special unit and <emph>m</emph> =
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph>(<emph>r</emph><emph role="sub"><emph role="strong">s</emph></emph>)
× <emph role="strong">u</emph> does the inverse.
</p></comment><p name="operations on special units"><emph role="strong"><anchor id="para-22">§22</anchor> operations on special units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
In theory, special units cannot take part in any algebraic operations,
neither involving other units, nor themselves (exponentiation) nor
involving scalars.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
Special units are therefore non-metric units.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
However, due to the requirement of the SI that does allow prefixes on
the degree Celsius, special units may be <emph>scaled</emph> trough a prefix
or an arbitrary numeric factor.
<emph role="strong"><emph role="sup"> ■4</emph></emph> The scale factor <emph>α</emph><!-- &element; \Re --> is an
additional component of the special unit, which in turn is defined by
a quadruple <emph role="strong">s</emph> = (<emph role="strong">u</emph>, <emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph>,
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph>, <emph>α</emph>). When the
functions <emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph> and
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph> are applied to a measurement value
<emph>x</emph> to convert to and from the special unit the scale factor is
applied as follows: <emph>x</emph>' = <emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph>(<emph>x</emph>) /
<emph>α</emph> converts from <emph>x</emph> expressed in the corresponding
proper unit to <emph>x</emph>' in terms of the special unit and <emph>x</emph> =
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph>(<emph>α</emph><emph>x</emph>') does
the reverse.
<emph role="strong"><emph role="sup"> ■5</emph></emph>
Multiplication of a special unit <emph role="strong">s</emph> = (<emph role="strong">u</emph>,
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph>,
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph>, <emph>α</emph>) with a
scalar <emph>β</emph><!-- &element; ℜ --> is defined as
<emph>β</emph><emph role="strong">s</emph> = (<emph role="strong">u</emph>, <emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph>,
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph>, <emph>β</emph><emph>α</emph>). Multiplication of a special unit <emph role="strong">s</emph> with a
dimensionless unit <emph>r</emph><emph role="strong">1</emph> is defined as <emph>r</emph><emph role="strong">s</emph>.
</p><comment><p class="comment">
Since prefixes have a scalar value that multiplies the unit atom, a
unit must at least have a defined multiplication operation with a
scalar in order to be a candidate for the metric predicate. All proper
units are candidates for the metric property, special units are no
such candidates.
</p><p class="comment">
The <emph>Comité Consultatif d'Unités</emph> (CCU)
decided in February 1995 that any SI prefix may be used with degree
Celsius. This statement has not been made explicitly before. This is
an unfortunate decision because difference-scale units like the degree
Celsius have no multiplication operation, so that the prefix value
could be multiplied with the unit. Instead the prefix at non-ratio
units scales the measurement value. One wonders why the CGPM keeps the
Celsius temperature in the SI as it is superfluous and in a unique way
incoherent with the SI.
</p><p class="comment">
The scale factor <emph>α</emph> is applied with the functions
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph> and <emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph>
as follows: let <emph>r</emph><emph role="sub"><emph role="strong">s</emph></emph> be the numeric measurement
value expressed in the special unit <emph role="strong">s</emph> and let <emph>m</emph> be the
corresponding dimensioned quantity, i.e., the measurement with proper
unit <emph role="strong">u</emph>. Now, <emph>r</emph><emph role="sub"><emph role="strong">s</emph></emph> =
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph>(<emph>m</emph>/<emph role="strong">u</emph>) / <emph>α</emph>
converts the proper measurement to the special unit and <emph>m</emph> =
<emph>f</emph><emph role="sub"><emph role="strong">s</emph></emph><emph role="sup">-1</emph>(<emph>α</emph><emph>r</emph><emph role="sub"><emph role="strong">s</emph></emph>) × <emph role="strong">u</emph> does the reverse.
</p></comment><p name="definition of special units"><emph role="strong"><anchor id="para-23">§23</anchor> definition of special units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Special units are marked in the definition tables for unit atoms by a
bullet (‘•’) in the column titled “value”
and a special expression in the column titled
“definition”. The BNF for the special expression is <<emph>special-unit</emph>> ::= <<emph>function-symbol</emph>>“<code>(</code>”<<emph>floating-point-number</emph>>“<code> </code>”<<emph>term</emph>>“<code>)</code>” The function symbols are defined as
needed.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
Special expressions are <emph>not</emph> valid expressions in <emph>The Unified Code for Units of Measure</emph>,
they are <emph>only</emph> used for defining special units.
</p></div2><div2><head>Arbitrary Units</head><p id="para-arbitrary" name="arbitrary units"><emph role="strong"><anchor id="para-24">§24</anchor> arbitrary units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Arbitrary or procedure defined units are units whose meaning entirely
depends on the measurement procedure (assay). These units have no
general meaning in relation with any other unit in the SI. Therefore those arbitrary
semantic entities are called <emph>arbitrary units</emph>, as opposed to
<emph>proper units</emph>. The set of arbitrary units is denoted
<emph>A</emph>, where <emph>A</emph> ∩ <emph>U</emph> = {}.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
An arbitrary unit has no further definition in the semantic framework of <emph>The Unified Code for Units of Measure</emph> <emph role="strong"><emph role="sup"> ■3</emph></emph>
Arbitrary units are not “of any specific dimension” and are
not “commensurable with” any other unit.
</p><comment><p class="comment">
Until version 1.6 <emph>The Unified Code for Units of Measure</emph> has dealt with arbitrary units as dimensionless,
but as an effect the semantics of <emph>The Unified Code for Units of Measure</emph> made all arbitrary units
commensurable. Since version 1.7 of <emph>The Unified Code for Units of Measure</emph> it is no longer possible to
convert or compare arbitrary units with any other arbitrary unit.
</p></comment><p name="operations on arbitrary units"><emph role="strong"><anchor id="para-25">§25</anchor> operations on arbitrary units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Any term involving arbitrary units, is itself an arbitrary unit and is not
comparable with any other arbitrary unit or term.
</p><p name="definition of arbitrary units"><emph role="strong"><anchor id="para-26">§26</anchor> definition of arbitrary units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Arbitrary units are marked in the definition tables for unit atoms by a
bullet (‘•’) in the column titled “value”
and a bullet in the column titled “definition”.
</p></div2></div1><div1><head>Tables of Terminal Symbols</head><div2><head>Prefixes</head><p name="prefixes"><emph role="strong"><anchor id="para-27">§27</anchor> prefixes</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Prefix symbols are those defined in <tabref ref="prefixes"/>.
<emph role="strong"><emph role="sup"> ■2</emph></emph> There are five columns titled “name,”
“print,” “c/s,” “c/i,” and
“value” The name is the full (official) name of the
unit. The official symbol used in print this is listed in the column
“print” “C/s,” and “c/i” list the
symbol in the case sensitive and the case insensitive variants
respectively. “Value” is the scalar value by which the
unit atom is multiplied if combined with the prefix.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Only the columns titled “c/s,” “c/i,” and
“value,” are normative. Full name and print symbol are
defined by the CGPM and are out of scope of <emph>The Unified Code for Units of Measure</emph>.
</p><comment><p class="comment">
The case insensitive prefix symbols are slightly different from those
defined by ISO 2955 and ANSI X3.50, where “giga-,”
“tera-,” and “peta-” have been
“<code>G</code>,” “<code>T</code>,” and
“<code>PE</code>.” <emph>The Unified Code for Units of Measure</emph> has a larger set of unit atoms
and needs to prevent more name conflicts. Tera and giga have a second
letter to be safe in the future. The change of
“<code>PE</code>” to “<code>PT</code>” would
be the way to go for ISO 2955 which currently has a name conflict
(among others) with peta-volt and pico-electronvolt.
</p><p class="comment">
The new prefixes “yotta-,” “zetta-,”
“yocto-,” and “zepto-” that were adopted by
the 19th CGPM (1990) have a second letter ‘A’ and
‘O’ resp. to avoid current and future conflicts and to
disambiguate among themselves. The other submultiples
“micro-” to “atto-” are represented by a
single letter to keep with the tradition.
</p></comment><table id="prefixes"><tr><th>name</th><th>print</th><th>c/s</th><th>c/i</th><th>value</th></tr><caption>The prefix symbols</caption><tr><td>yotta </td><td>Y </td><td><code>Y</code></td><td><code>YA</code></td><td>1 × 10<emph role="sup">24</emph> </td></tr><tr><td>zetta </td><td>Z </td><td><code>Z</code></td><td><code>ZA</code></td><td>1 × 10<emph role="sup">21</emph> </td></tr><tr><td>exa </td><td>E </td><td><code>E</code></td><td><code>EX</code></td><td>1 × 10<emph role="sup">18</emph> </td></tr><tr><td>peta </td><td>P </td><td><code>P</code></td><td><code>PT</code></td><td>1 × 10<emph role="sup">15</emph> </td></tr><tr><td>tera </td><td>T </td><td><code>T</code></td><td><code>TR</code></td><td>1 × 10<emph role="sup">12</emph> </td></tr><tr><td>giga </td><td>G </td><td><code>G</code></td><td><code>GA</code></td><td>1 × 10<emph role="sup">9</emph> </td></tr><tr><td>mega </td><td>M </td><td><code>M</code></td><td><code>MA</code></td><td>1 × 10<emph role="sup">6</emph> </td></tr><tr><td>kilo </td><td>k </td><td><code>k</code></td><td><code>K</code></td><td>1 × 10<emph role="sup">3</emph> </td></tr><tr><td>hecto </td><td>h </td><td><code>h</code></td><td><code>H</code></td><td>1 × 10<emph role="sup">2</emph> </td></tr><tr><td>deka </td><td>da </td><td><code>da</code></td><td><code>DA</code></td><td>1 × 10<emph role="sup">1</emph> </td></tr><tr><td>deci </td><td>d </td><td><code>d</code></td><td><code>D</code></td><td>1 × 10<emph role="sup">-1</emph> </td></tr><tr><td>centi </td><td>c </td><td><code>c</code></td><td><code>C</code></td><td>1 × 10<emph role="sup">-2</emph> </td></tr><tr><td>milli </td><td>m </td><td><code>m</code></td><td><code>M</code></td><td>1 × 10<emph role="sup">-3</emph> </td></tr><tr><td>micro </td><td>μ </td><td><code>u</code></td><td><code>U</code></td><td>1 × 10<emph role="sup">-6</emph> </td></tr><tr><td>nano </td><td>n </td><td><code>n</code></td><td><code>N</code></td><td>1 × 10<emph role="sup">-9</emph> </td></tr><tr><td>pico </td><td>p </td><td><code>p</code></td><td><code>P</code></td><td>1 × 10<emph role="sup">-12</emph> </td></tr><tr><td>femto </td><td>f </td><td><code>f</code></td><td><code>F</code></td><td>1 × 10<emph role="sup">-15</emph> </td></tr><tr><td>atto </td><td>a </td><td><code>a</code></td><td><code>A</code></td><td>1 × 10<emph role="sup">-18</emph> </td></tr><tr><td>zepto </td><td>z </td><td><code>z</code></td><td><code>ZO</code></td><td>1 × 10<emph role="sup">-21</emph> </td></tr><tr><td>yocto </td><td>y </td><td><code>y</code></td><td><code>YO</code></td><td>1 × 10<emph role="sup">-24</emph> </td></tr></table></div2><div2><head>Base Units</head><p name="base units"><emph role="strong"><anchor id="para-28">§28</anchor> base units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph> The base units shown in <tabref ref="baseunits"/> are used to
define all the unit atoms of <emph>The Unified Code for Units of Measure</emph> according to its grammar and
semantics.
<emph role="strong"><emph role="sup"> ■2</emph></emph> There are five columns titled “name,” “kind
of quantity,” “print,” “c/s,” and
“c/i.” The name is the full (official) name of the
unit. The official symbol used in print this is listed in the column
“print” “C/s,” and “c/i” list the
symbol in the case sensitive and the case insensitive variants
respectively.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Only the columns titled “c/s,” and “c/i,” are
normative. Full name and print symbol are defined by other bodies and
are out of scope of <emph>The Unified Code for Units of Measure</emph>.
<emph role="strong"><emph role="sup"> ■4</emph></emph> The selection of base units and the particular order are not
normative. Any other basis <emph role="strong">B</emph>' that generates an
isomorphic group of units is conformant with <emph>The Unified Code for Units of Measure</emph>.
<emph role="strong"><emph role="sup"> ■5</emph></emph>
If the other base <emph role="strong">B</emph>' generates a different system of units
<emph>U</emph>' it conforms to <emph>The Unified Code for Units of Measure</emph> only if there is an homomorphism that maps
<emph>U</emph>' onto <emph>U</emph>.
<emph role="strong"><emph role="sup"> ■6</emph></emph>
Base units must be metric units only. Special units can not be base
units.
</p><comment><p class="comment">
As can be seen the base system used to define <emph>The Unified Code for Units of Measure</emph> is different
from the system used by the <emph>Système International
d'Unités</emph> (SI) The SI base unit kilogram has been
replaced by gram and the mole has been replaced by the radian that is
defined dimensionless in the SI. Because of the latter change <emph>The Unified Code for Units of Measure</emph>
is not isomorphic with the SI.
</p><p class="comment">
The replacement of the kilogram is trivial. In order to bring syntax
and semantics in line we can not have a unit with prefix in the
base. We need a valid unit of mass before we can combine it with the
prefix “kilo-” This change does not have any effect on the
semantics whatsoever. The base unit kilogram is one of the oddities
of the SI: if the gram would have been chosen as a base units the CGPM
could have saved the rather annoying exception of the prefixing rules
with the kilogram. At times where we have to multiply the wavelength
of excited krypton-86 atoms by 1650763.73 to yield one meter, it seems
trivial to divide the prototype of the kilogram by thousand to yield a
base unit gram.
</p><p class="comment">
The rationale for removing the mole from the base is that the mole is
essentially a count of particles expressed in a unit of very high
magnitude (Avogadro's number). There is no fundamental difference
between the count of particles and the count other things.
</p><p class="comment">
The radian has been adopted as the base unit of plane angle
<emph>α</emph> to facilitate the distinction from the solid angle
<emph>Ω</emph> by the relation <emph>Ω</emph> =
<emph>α</emph><emph role="sup">2</emph> and to distinguish rotational frequency
<emph>f</emph> from angular velocity <emph>ω</emph> = 2 <emph>π</emph> ·
rad · <emph>f</emph>.
</p></comment><table id="baseunits" max="7"><tr><th>name</th><th>kind of quantity</th><th>print</th><th>c/s</th><th>c/i</th></tr><caption> The base units upon which the semantics of all the unit
atoms in <emph>The Unified Code for Units of Measure</emph> are defined. The selection of the base and the order
of the units in the base are not normative. Any other base is
acceptable as long as there is an isomorphism between the group of
units generated by the other base system and this one. All base units
are metric.</caption><tr><td>meter </td><td>length </td><td>m </td><td><code>m</code></td><td><code>M</code></td></tr><tr><td>second </td><td>time </td><td>s </td><td><code>s</code></td><td><code>S</code></td></tr><tr><td>gram </td><td>mass </td><td>g </td><td><code>g</code></td><td><code>G</code></td></tr><tr><td>radian </td><td>plane angle </td><td>rad </td><td><code>rad</code></td><td><code>RAD</code></td></tr><tr><td>kelvin </td><td>temperature </td><td>K </td><td><code>K</code></td><td><code>K</code></td></tr><tr><td>coulomb </td><td>electric charge </td><td>C </td><td><code>C</code></td><td><code>C</code></td></tr><tr><td>candela </td><td>luminous intensity </td><td>cd </td><td><code>cd</code></td><td><code>CD</code></td></tr></table></div2><div2><head>Derived Unit Atoms</head><p name="dimensionless units"><emph role="strong"><anchor id="para-29">§29</anchor> dimensionless units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Dimensionless unit atoms are defined in <tabref ref="dimless"/>.
<emph role="strong"><emph role="sup"> ■2</emph></emph> There are seven columns titled “name,”
“print,” “c/s,” “c/i,”
“M,” “value,” and “definition.”
The name is the full (official) name of the unit. The symbol
recommended for use in print is listed in the column
“print.” “C/s,” and “c/i” list the
symbol in the case sensitive and the case insensitive variants
respectively.
The column “M” specifies whether this is a
metric unit.
The definition is a valid case sensitive expression of
<emph>The Unified Code for Units of Measure</emph> that defines the unit atom.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Only the columns titled “c/s,” “c/i,”
“M,” “value,” and “definition” are
normative. Full name and print symbol are out of scope of <emph>The Unified Code for Units of Measure</emph>.
<emph role="strong"><emph role="sup"> ■4</emph></emph>
The units named “parts per <emph>N</emph>” are provided to be used
where absolutely necessary but are not endorsed. Especially
“ppb” and “pptr” are deprecated since
“billion” and “trillion” are ambiguous names
internationally. The explicit powers of ten should be given instead.
</p><table id="dimless" omit="property"><tr><th>name</th><th>print</th><th>c/s</th><th>c/i</th><th>M</th><th>definition value</th><th>definition unit</th></tr><caption>Dimensionless units. The units ppb and ppt are deprecated
because the names “billion” and “trillion” are
ambiguous. The expression “<code>10*-9</code>” or
“<code>10*-12</code>” should be used instead. When the
units percent or “parts per <emph>N</emph>” are used for
concentrations specific units are preferred, e.g.,
“<code>ug/l</code>” for mass concentration. The expression
“<code>ug/kg</code>” for ppb is also valid.
</caption><tr><td>the number ten for arbitrary powers </td><td>10<emph role="sup">n</emph> </td><td><code>10*</code> </td><td><code>10*</code> </td><td>no</td><td>10 </td><td><code>1</code> </td></tr><tr><td>the number ten for arbitrary powers </td><td>10<emph role="sup">n</emph> </td><td><code>10^</code> </td><td><code>10^</code> </td><td>no</td><td>10 </td><td><code>1</code> </td></tr><tr><td>the number pi </td><td>π </td><td><code>[pi]</code> </td><td><code>[PI]</code> </td><td>no</td><td>π </td><td><code>1</code> </td></tr><tr><td>percent </td><td>% </td><td><code>%</code> </td><td><code>%</code> </td><td>no</td><td>1 </td><td><code>10*-2</code> </td></tr><tr><td>parts per thousand </td><td>ppth </td><td><code>[ppth]</code> </td><td><code>[PPTH]</code> </td><td>no</td><td>1 </td><td><code>10*-3</code> </td></tr><tr><td>parts per million </td><td>ppm </td><td><code>[ppm]</code> </td><td><code>[PPM]</code> </td><td>no</td><td>1 </td><td><code>10*-6</code> </td></tr><tr><td>parts per billion </td><td>ppb </td><td><code>[ppb]</code> </td><td><code>[PPB]</code> </td><td>no</td><td>1 </td><td><code>10*-9</code> </td></tr><tr><td>parts per trillion </td><td>pptr </td><td><code>[pptr]</code> </td><td><code>[PPTR]</code> </td><td>no</td><td>1 </td><td><code>10*-12</code> </td></tr></table><comment><p class="comment">
The notation “<code>10*</code>” for powers of ten
originated in the HL7 “ISO+“ extension of ISO 2955.
In HL7 the character carat (‘<code>^</code>’) was thought as
reserved. Since most people would expect to see
“<code>10^3</code>” for the “third power of
ten” and might in fact confuse “<code>10*3</code>”
to mean “ten times 3”, the symbol using the carat was
later added to <emph>The Unified Code for Units of Measure</emph>.
</p></comment><p id="para-si" name="SI units"><emph role="strong"><anchor id="para-30">§30</anchor> SI units</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
SI units are defined by the international <emph>Conférence
Générale des Poids et Mesures</emph> (CGPM). <emph>The Unified Code for Units of Measure</emph> definitions
for those units are given in <tabref ref="si"/>.
<emph role="strong"><emph role="sup"> ■2</emph></emph> There are seven columns titled “name,”
“print,” “c/s,” “c/i,”
“M,” “value,” and “definition.”
The name is the full (official) name of the unit. The symbol
recommended for use in print is listed in the column
“print.” “C/s,” and “c/i” list the
symbol in the case sensitive and the case insensitive variants
respectively.
The column “M” specifies whether this is a
metric unit.
The definition
is a valid case sensitive expression of <emph>The Unified Code for Units of Measure</emph> that defines the unit
atom.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Only the columns titled “c/s,” “c/i,”
“M,” “value,” and “definition” are
normative. Full name and print symbol are defined by the CGPM and are
out of scope of <emph>The Unified Code for Units of Measure</emph>.
<emph role="strong"><emph role="sup"> ■4</emph></emph>
The function pair denoted “<code>cel(1 K)</code>” is
defined as <emph>f</emph><emph role="sub">C</emph>(<emph>x</emph>) = <emph>x</emph> - 273.15 to
convert from kelvin to degree Celsius, and
<emph>f</emph><emph role="sub">C</emph><emph role="sup">-1</emph>(<emph>x</emph>) = <emph>x</emph> + 273.15 to
convert from degree Celsius back to kelvin.
</p><comment><p class="comment">
The case insensitive symbol for pascal is
“<code>PAL</code>” which conforms to ISO 2955 and prevents
the name conflict between pascal and pico-ampère.
</p><p class="comment">
Without reference to history, it is difficult to explain that the
degree Celsius is part of the SI, because the degree Celsius is in a
unique way incoherent with the SI, and is even superfluous since the
base unit kelvin measures the same kind of quantity.
</p></comment><table id="si"><tr><th>name</th><th>kind of quantity</th><th>print</th><th>c/s</th><th>c/i</th><th>M</th><th>definition value</th><th>definition unit</th></tr><caption>SI units</caption><tr><td>mole </td><td>amount of substance </td><td>mol </td><td><code>mol</code> </td><td><code>MOL</code> </td><td>yes</td><td>6.02214076 </td><td><code>10*23</code> </td></tr><tr><td>steradian </td><td>solid angle </td><td>sr </td><td><code>sr</code> </td><td><code>SR</code> </td><td>yes</td><td>1 </td><td><code>rad2</code> </td></tr><tr><td>hertz </td><td>frequency </td><td>Hz </td><td><code>Hz</code> </td><td><code>HZ</code> </td><td>yes</td><td>1 </td><td><code>s-1</code> </td></tr><tr><td>newton </td><td>force </td><td>N </td><td><code>N</code> </td><td><code>N</code> </td><td>yes</td><td>1 </td><td><code>kg.m/s2</code> </td></tr><tr><td>pascal </td><td>pressure </td><td>Pa </td><td><code>Pa</code> </td><td><code>PAL</code> </td><td>yes</td><td>1 </td><td><code>N/m2</code> </td></tr><tr><td>joule </td><td>energy </td><td>J </td><td><code>J</code> </td><td><code>J</code> </td><td>yes</td><td>1 </td><td><code>N.m</code> </td></tr><tr><td>watt </td><td>power </td><td>W </td><td><code>W</code> </td><td><code>W</code> </td><td>yes</td><td>1 </td><td><code>J/s</code> </td></tr><tr><td>ampère </td><td>electric current </td><td>A </td><td><code>A</code> </td><td><code>A</code> </td><td>yes</td><td>1 </td><td><code>C/s</code> </td></tr><tr><td>volt </td><td>electric potential </td><td>V </td><td><code>V</code> </td><td><code>V</code> </td><td>yes</td><td>1 </td><td><code>J/C</code> </td></tr><tr><td>farad </td><td>electric capacitance </td><td>F </td><td><code>F</code> </td><td><code>F</code> </td><td>yes</td><td>1 </td><td><code>C/V</code> </td></tr><tr><td>ohm </td><td>electric resistance </td><td>Ω </td><td><code>Ohm</code> </td><td><code>OHM</code> </td><td>yes</td><td>1 </td><td><code>V/A</code> </td></tr><tr><td>siemens </td><td>electric conductance </td><td>S </td><td><code>S</code> </td><td><code>SIE</code> </td><td>yes</td><td>1 </td><td><code>Ohm-1</code> </td></tr><tr><td>weber </td><td>magnetic flux </td><td>Wb </td><td><code>Wb</code> </td><td><code>WB</code> </td><td>yes</td><td>1 </td><td><code>V.s</code> </td></tr><tr><td>degree Celsius </td><td>temperature </td><td>°C </td><td><code>Cel</code> </td><td><code>CEL</code> </td><td>yes</td><td>• </td><td><code>cel(1 K)</code> </td></tr><tr><td>tesla </td><td>magnetic flux density </td><td>T </td><td><code>T</code> </td><td><code>T</code> </td><td>yes</td><td>1 </td><td><code>Wb/m2</code> </td></tr><tr><td>henry </td><td>inductance </td><td>H </td><td><code>H</code> </td><td><code>H</code> </td><td>yes</td><td>1 </td><td><code>Wb/A</code> </td></tr><tr><td>lumen </td><td>luminous flux </td><td>lm </td><td><code>lm</code> </td><td><code>LM</code> </td><td>yes</td><td>1 </td><td><code>cd.sr</code> </td></tr><tr><td>lux </td><td>illuminance </td><td>lx </td><td><code>lx</code> </td><td><code>LX</code> </td><td>yes</td><td>1 </td><td><code>lm/m2</code> </td></tr><tr><td>becquerel </td><td>radioactivity </td><td>Bq </td><td><code>Bq</code> </td><td><code>BQ</code> </td><td>yes</td><td>1 </td><td><code>s-1</code> </td></tr><tr><td>gray </td><td>energy dose </td><td>Gy </td><td><code>Gy</code> </td><td><code>GY</code> </td><td>yes</td><td>1 </td><td><code>J/kg</code> </td></tr><tr><td>sievert </td><td>dose equivalent </td><td>Sv </td><td><code>Sv</code> </td><td><code>SV</code> </td><td>yes</td><td>1 </td><td><code>J/kg</code> </td></tr></table><p id="para-other" name="other units from ISO 1000, ISO 2955 and ANSI X3.50"><emph role="strong"><anchor id="para-31">§31</anchor> other units from ISO 1000, ISO 2955 and ANSI X3.50</emph>
<emph role="strong"><emph role="sup"> ■1</emph></emph>
Those unit atoms listed by ISO 2955 under the heading “other
units from ISO 1000” and some units from ANSI X3.50 are defined
in <tabref ref="iso1000"/>.
<emph role="strong"><emph role="sup"> ■2</emph></emph>
The meaning of the columns is declared in <termref ref="para-30">§30</termref>.2.
<emph role="strong"><emph role="sup"> ■3</emph></emph>
Only the columns titled “c/s,” “c/i,”
“M,” “value,” and “definition” are
normative. Full name and print symbol are defined by ISO 1000 and are
out of scope of <emph>The Unified Code for Units of Measure</emph>.
</p><table id="iso1000"><tr><th>name</th><th>kind of quantity</th><th>print</th><th>c/s</th><th>c/i</th><th>M</th><th>definition value</th><th>definition unit</th></tr><caption>Other units from ISO 1000, ISO 2955, and some from ANSI X3.50.</caption><tr><td>gon, grade </td><td>plane angle </td><td><emph role="sup">g</emph> </td><td><code>gon</code> </td><td><code>GON</code> </td><td>no</td><td>0.9 </td><td><code>deg</code> </td></tr><tr><td>degree </td><td>plane angle </td><td>° </td><td><code>deg</code> </td><td><code>DEG</code> </td><td>no</td><td>2 </td><td><code>[pi].rad/360</code> </td></tr><tr><td>minute </td><td>plane angle </td><td>' </td><td><code>'</code> </td><td><code>'</code> </td><td>no</td><td>1 </td><td><code>deg/60</code> </td></tr><tr><td>second </td><td>plane angle </td><td>'' </td><td><code>''</code> </td><td><code>''</code> </td><td>no</td><td>1 </td><td><code>'/60</code> </td></tr><tr><td>liter </td><td>volume </td><td>l </td><td><code>l</code> </td><td><code>L</code> </td><td>yes</td><td>1 </td><td><code>dm3</code> </td></tr><tr><td>liter </td><td>volume </td><td>L </td><td><code>L</code> </td><td><code>L</code> </td><td>yes</td><td>1 </td><td><code>l</code> </td></tr><tr><td>are </td><td>area </td><td>a </td><td><code>ar</code> </td><td><code>AR</code> </td><td>yes</td><td>100 </td><td><code>m2</code> </td></tr><tr><td>minute </td><td>time </td><td>min </td><td><code>min</code> </td><td><code>MIN</code> </td><td>no</td><td>60 </td><td><code>s</code> </td></tr><tr><td>hour </td><td>time </td><td>h </td><td><code>h</code> </td><td><code>HR</code> </td><td>no</td><td>60 </td><td><code>min</code> </td></tr><tr><td>day </td><td>time </td><td>d </td><td><code>d</code> </td><td><code>D</code> </td><td>no</td><td>24 </td><td><code>h</code> </td></tr><tr><td>tropical year </td><td>time </td><td>a<emph role="sub">t</emph> </td><td><code>a_t</code> </td><td><code>ANN_T</code> </td><td>no</td><td>365.24219 </td><td><code>d</code> </td></tr><tr><td>mean Julian year </td><td>time </td><td>a<emph role="sub">j</emph> </td><td><code>a_j</code> </td><td><code>ANN_J</code> </td><td>no</td><td>365.25 </td><td><code>d</code> </td></tr><tr><td>mean Gregorian year </td><td>time </td><td>a<emph role="sub">g</emph> </td><td><code>a_g</code> </td><td><code>ANN_G</code> </td><td>no</td><td>365.2425 </td><td><code>d</code> </td></tr><tr><td>year </td><td>time </td><td>a </td><td><code>a</code> </td><td><code>ANN</code> </td><td>no</td><td>1 </td><td><code>a_j</code> </td></tr><tr><td>week </td><td>time </td><td>wk </td><td><code>wk</code> </td><td><code>WK</code> </td><td>no</td><td>7 </td><td><code>d</code> </td></tr><tr><td>synodal month </td><td>time </td><td>mo<emph role="sub">s</emph> </td><td><code>mo_s</code> </td><td><code>MO_S</code> </td><td>no</td><td>29.53059 </td><td><code>d</code> </td></tr><tr><td>mean Julian month </td><td>time </td><td>mo<emph role="sub">j</emph> </td><td><code>mo_j</code> </td><td><code>MO_J</code> </td><td>no</td><td>1 </td><td><code>a_j/12</code> </td></tr><tr><td>mean Gregorian month </td><td>time </td><td>mo<emph role="sub">g</emph> </td><td><code>mo_g</code> </td><td><code>MO_G</code> </td><td>no</td><td>1 </td><td><code>a_g/12</code> </td></tr><tr><td>month </td><td>time </td><td>mo </td><td><code>mo</code> </td><td><code>MO</code> </td><td>no</td><td>1 </td><td><code>mo_j</code> </td></tr><tr><td>tonne </td><td>mass </td><td>t </td><td><code>t</code> </td><td><code>TNE</code> </td><td>yes</td><td>1 × 10<emph role="sup">3</emph> </td><td><code>kg</code> </td></tr><tr><td>bar </td><td>pressure </td><td>bar </td><td><code>bar</code> </td><td><code>BAR</code> </td><td>yes</td><td>1 × 10<emph role="sup">5</emph> </td><td><code>Pa</code> </td></tr><tr><td>unified atomic mass unit </td><td>mass </td><td>u </td><td><code>u</code> </td><td><code>AMU</code> </td><td>yes</td><td>1.66053906660 × 10<emph role="sup">-24</emph> </td><td><code>g</code> </td></tr><tr><td>electronvolt </td><td>energy </td><td>eV </td><td><code>eV</code> </td><td><code>EV</code> </td><td>yes</td><td>1 </td><td><code>[e].V</code> </td></tr><tr><td>astronomic unit </td><td>length </td><td>AU </td><td><code>AU</code> </td><td><code>ASU</code> </td><td>no</td><td>149597.870691 </td><td><code>Mm</code> </td></tr><tr><td>parsec </td><td>length </td><td>pc </td><td><code>pc</code> </td><td><code>PRS</code> </td><td>yes</td><td>3.085678 × 10<emph role="sup">16</emph> </td><td><code>m</code> </td></tr></table><comment><p class="comment">
In the case sensitive variant the liter is defined both with an upper
case ‘<code>L</code>” and a lower case
‘<code>l</code>’. NIST [63 FR 40338] declares the upper case
‘L’ as the preferred symbol for the U.S., while in many other
countries the lower case ‘l’ is used. In fact the lower case
‘l’ was in effect since 1879. A hundred years later in 1979
the 16th CGPM decided to adopt the upper case ‘L’ as a
second symbol for the liter. In the case insensitive variant there is
only one symbol defined since there is no difference between upper
case ‘L’ and lower case ‘l’.
</p><p class="comment">
The unit “are” competes with year for the symbol
“a” not only in ISO 2955, and ANSI X3.50, but also in
ISO 1000 as stating the official CGPM approved symbols. This is why
the symbol for are is “<code>ar</code>” in
<emph>The Unified Code for Units of Measure</emph>. ISO 2955 explicitly adds the unit atom
“<code>ha</code>” for hectare, while “hectare”