History of UnitsML
UnitsML since 2003 — 23 strong years and counting. A continuous journey of standards development from a research project at Lawrence Berkeley National Laboratory to the authoritative XML units standard maintained by CalConnect TC UNITS.
Origins at LBNL
Frank Olken and John McCarthy of Lawrence Berkeley National Laboratory lead the initial effort to encode units in XML, driven by needs expressed in the W3C XML Query Language requirements.
First publications
"Measurement Units in XML Datatypes" published by Olken and McCarthy. MatML (Materials Markup Language) at NIST references the measurement units work.
UnitsML takes shape at NIST
The "Units Markup Language" presentation at the Sixth Open Forum on Metadata Registries in Santa Fe, NM. The original NIST homepage goes online in May.
UnitsML will enable markup of scientific units to allow unambiguous storage, exchange, and processing of numeric data.
UnitsML Schema 0.7
Early NIST schema draft: QuantitySet/Quantity/UnitRef becomes a reference to the Unit element, and dimension elements gain their own symbol attributes.
UnitsML Schema 0.7.2
Dimension elements made optional through minOccurs/maxOccurs constraints and extended with an xsd:byte base.
UnitsML Schema 0.7.3
Naming cleanup; dimension elements declared global, each with its own type.
UnitsML Schema 0.8
Symbol element added to Units, QuantityReferenceType gains a name attribute, and reference datatypes relax from IDREF to string.
UnitsML Schema 0.8.1
The enumeration on Unit/System/@type is removed.
UnitsML Schema 0.9
NoteType introduced; ConversionFactor's note becomes ConversionNote and Unit gains a UnitNote element.
UnitsML Schema 0.9.1
ThermoTemp renamed to ThermodynamicTemperature, asciiSymbol attributes replaced by Symbol entities, and powerNumerator becomes required.
OASIS Technical Committee formed
The OASIS TC "UnitsML" is formed with its first official teleconference on July 12, convened by Simon Frechette (NIST).
UnitsML Schema 0.9.2
Schema documentation added; Unit references Prefix directly, and the unused asciisymbols type is removed.
UnitsML Schema 0.9.2.1
Prefix attributes become optional with defaults (SI system, base 10); power numerator and denominator default to 1.
UnitsML Schema 0.9.3
Default values added for power exponents and prefix system/base attributes across UnitType, UnitRepresentationType, and PrefixType.
UnitsML Schema 0.9.4
BaseUnits framework introduced with enumerated and external base units — including a 210-unit list provided by Peter Linstrom — plus an enumerated SI prefix list.
UnitsML Schema 0.9.5
BaseUnits renamed to RootUnits; the enumerated unit list switches from UN/CEFACT codes to English names, binary prefixes are added, and the Conversions/ConversionFrom elements are introduced.
UnitsML Schema 0.9.6
ConversionFrom renamed to Float64ConversionFrom with a combined URI/ID initialUnit; the Representation element is removed in favor of RootUnits and Conversions, and code-list elements are added for external unit codes.
UnitsML Schema 0.9.7
SpecialConversion added; a timeStamp attribute tracks substantive unit changes, and 22 atomic and 10 natural units join the enumerated root unit list.
UnitsML Schema 0.9.8
Unit identifiers consolidated into @unitID; SpecialConversion becomes SpecialConversionFrom, and Quantity/UnitReference becomes optional and unbounded.
UnitsML Schema 0.9.9
Enumerated unit names normalized (degree_Celsius, electronvolt, knot, standard_atmosphere); torr and unified atomic mass unit added.
UnitsML Schema 0.9.10
DimensionSet created at the top level, moving Dimension out of Quantity and adding rational power exponents to each dimension element.
UnitsML Schema 0.9.11
Unit and Quantity notes become VersionHistory elements; ItemType allows counted items in dimension expressions, and special conversions gain external URIs.
UnitsML Schema 0.9.12
WSDL-based conversions introduced via WSDLConversionFrom alongside Float64 conversions; a dimensionless flag is added to DimensionType.
UnitsML Schema 0.9.13
CountedItem support added; binary prefixes Zi and Yi join the prefix list, and source/language attributes become global.
UnitsML Schema 0.9.14
URL naming normalized across conversion and reference attributes (@wsdlURL, @initialUnit, @conversionURL), and the xml:lang namespace is adopted.
UnitsML Schema 0.9.15
Notes and definitions become unbounded to support multiple languages; SymbolType switches to anyType so symbols can contain markup, and CountedItem gains history and remark elements.
UnitsML Schema 0.9.16
Global attributes regrouped into attribute groups; prefix definitions return via PrefixSet/Prefix, all IDs migrate to xml:id, and QuantityReference adopts quantityURL.
UnitsML Schema 0.9.17
xml:id required on all primary elements; U.S. survey and FDA label units added with the us_ prefix, and unbounded dimension sequences allow complex dimension expressions.
UnitsML Schema 0.9.18
ReferenceType unifies unit and quantity references; bit and byte join the enumerated root units, and code-list values move directly into UnitType.
NVUnitsML demo published
An interactive browser-based demo shows unit conversions driven by UnitsML 0.9.18 and XSLT stylesheets.
UnitsML Schema 0.9.19
PlaneAngle added to DimensionType, xml:lang allowed on prefix symbols, and the U95 uncertainty-radius attributes removed.
UnitsML v1.0-csd01
First OASIS Committee Specification Draft, with typographical fixes to the enumerated root unit list (us_gill, polarizability).
UnitsML v1.0-csd02
Version-history elements repositioned within CountedItem and Unit for consistent ordering.
UnitsML v1.0-csd03
The enumerated root unit kilogram_force is corrected to gram_force.
UnitsML v1.0-csd04 approved
The OASIS TC approves UnitsML v1.0 Committee Specification Draft 04, adding light-time units and refining Avoirdupois units.
OASIS TC completes work
The OASIS Technical Committee for UnitsML is closed after completing its mandate at that stage.
Revival
UnitsML work continues through collaboration between NIST and Ribose, renewing the effort for modern standards.
UnitsDB archive preserved
The original NIST UnitsDB XML dumps are imported into the unitsdb-archive repository, preserving the complete 0.9.18 and 1.0 schema datasets.
CalConnect TC UNITS established
CalConnect creates TC UNITS to carry on the UnitsML work. Karen Olsen (NIST) and Nick Nicholas (Ribose) co-chair the technical committee. Presentations are given at SciDataCon 2022 (June) and to CIPM/BIPM (September).
UnitsDB 1.0 & 2.0 released
UnitsDB 1.0 (March) delivers the first stable release. UnitsDB 2.0 (May) introduces organization-neutral identifiers, multilingual names from BIPM, and cross-references to the BIPM SI Digital Framework, UCUM, and QUDT.
Key milestones
- 1998 — Frank Olken and John McCarthy begin encoding units in XML at LBNL.
- 2003 — NIST’s “Units Markup Language” presentation at the Sixth Open Forum on Metadata Registries.
- 2006 — OASIS Technical Committee formed; first teleconference July 12.
- 2006–2010 — NIST publishes 26 schema revisions (0.7 through 0.9.19), adding conversions, root-unit enumerations, dimensions, and counted items.
- 2011 — UnitsML v1.0-csd04 approved.
- 2022 — CalConnect TC UNITS established; SciDataCon and CIPM presentations.
- 2025 — UnitsDB 1.0 and 2.0 released with BIPM Digital SI Framework cross-references.
Related resources
- About UnitsML — governance, people, and organizations
- Resources — presentations, publications, and archived documents
- Who uses UnitsML — standards and products built on UnitsML