Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions metanorma.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ metanorma:
files:
- sources/asciiunits/document.adoc
- sources/unitsdb/document.adoc
- sources/unitsml-urn/document.adoc
# - sources/unitsml-guide/document.adoc
# - sources/unitsml-incorporation/document.adoc
# - sources/unitsml-ubl-ndr-subset/document.adoc
Expand Down
51 changes: 51 additions & 0 deletions sources/unitsml-urn/document.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
= CalConnect Standard: UnitsML URN namespace specification
:title: UnitsML URN namespace specification
:docnumber: 36811
:copyright-year: 2025
:doctype: standard
:edition: 1
:status: committee-draft
:revdate: 2025-03-25
:published-date: 2025-03-25
:technical-committee: UnitsML
:fullname: Ronald Tse
:surname: Tse
:givenname: Ronald
:affiliation: Ribose Inc.
:imagesdir: images
:mn-document-class: cc
:mn-output-extensions: xml,html,pdf,rxl
:local-cache-only:
:data-uri-image:

include::sections/00-foreword.adoc[]

include::sections/00-intro.adoc[]

include::sections/01-scope.adoc[]

include::sections/02-normrefs.adoc[]

include::sections/03-terms.adoc[]

include::sections/04-principles.adoc[]

include::sections/05-elements.adoc[]

include::sections/06-composite.adoc[]

include::sections/07-composite-normalize.adoc[]

include::sections/08-urn.adoc[]

include::sections/09-namespace-considerations.adoc[]

include::sections/10-community-considerations.adoc[]

include::sections/11-security-considerations.adoc[]

include::sections/12-iana.adoc[]

include::sections/99-bibliography.adoc[]

include::sections/a1-ebnf.adoc[]
35 changes: 35 additions & 0 deletions sources/unitsml-urn/sections/00-foreword.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@

.Foreword
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.

CalConnect works closely with international and regional partners,
of which the full list is available on our website
(https://www.calconnect.org/about/liaisons-and-relationships).

The procedures used to develop this document and those intended for its
further maintenance are described in the CalConnect Directives.

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.

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.

////
// TODO: re-enable when we finish the IPR policy
and/or on the CalConnect list of patent
declarations received (see www.calconnect.com/patents).
////

Any trade name used in this document is information given for the
convenience of users and does not constitute an endorsement.

This document was prepared by Technical Committee
_{technical-committee}_.

44 changes: 44 additions & 0 deletions sources/unitsml-urn/sections/00-intro.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
== Introduction

=== General

UnitsML is a comprehensive framework for representing units of measurement in
machine-readable format. A critical aspect of this framework is the ability to
uniquely and persistently identify units, dimensions, prefixes, quantities, and
other related concepts.

This document describes a Uniform Resource Name (URN) namespace for identifying
UnitsML resources. The URN scheme provides a way to reference UnitsML elements
across different systems and over time, ensuring consistent identification
regardless of location or implementation.

=== Purpose

The purpose of the UnitsML URN namespace is to provide persistent,
location-independent identifiers for UnitsML resources.

This enables:

* Unique identification of basic UnitsML elements such as units, dimensions,
prefixes, quantities, unit systems, quantity kinds, and unit scales

* Representation of composite expressions combining multiple elements

* References to specific versions of elements

* Machine-readable identifiers that can be used in various contexts, including
XML, JSON, and plain text

=== Relationship to other identification systems

The UnitsML URN namespace is designed to be compatible with existing identification systems while providing a standardized approach specific to UnitsML resources.

It builds upon:

* RFC 8141, which defines the URN scheme
* UnitsML entity identifiers (e.g., `u:newton` for newton)
* Legacy NIST UnitsML entity identifiers (e.g., `NISTu11` for newton)

The UnitsML URN scheme provides a bridge between these systems, allowing for
interoperability while maintaining the specific requirements of the UnitsML
framework.
16 changes: 16 additions & 0 deletions sources/unitsml-urn/sections/01-scope.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
== Scope

This document specifies the syntax, semantics, and usage guidelines for the
UnitsML URN namespace.

It covers:

* The basic structure of UnitsML URNs
* Identification of fundamental UnitsML elements (units, dimensions, prefixes, quantities, unit systems, quantity kinds, types of intervals)
* Representation of composite expressions in URN form
* Rules for constructing and interpreting UnitsML URNs
* Normalization algorithms for comparing equivalent expressions
* Namespace registration information as required by RFC 8141

This specification is intended to be used by developers, standards bodies, and
organizations implementing UnitsML in their systems.
10 changes: 10 additions & 0 deletions sources/unitsml-urn/sections/02-normrefs.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[bibliography]
== Normative references

* [[[unitsml-xml,UnitsML XML schema]]], https://www.unitsml.org

* [[[RFC_8141,IETF RFC 8141]]], _Uniform Resource Names (URNs)_

* [[[RFC_5234,IETF RFC 5234]]], _Augmented BNF for Syntax Specifications: ABNF_

* UnitsML, _Units Markup Language Specification_
55 changes: 55 additions & 0 deletions sources/unitsml-urn/sections/03-terms.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
== Terms and definitions

=== basic element

fundamental component in the UnitsML framework, including unit, dimension,
prefix, quantity, unit system, quantity kind, and unit scale

=== composite expression

combination of multiple basic elements using mathematical operations such as
multiplication, division, and exponentiation

=== NID

namespace identifier, registered with IANA for use with URNs

=== NSS

namespace specific string, the portion of a URN that follows the "urn:" <NID>
":" and conforms to the specification of the NID

=== unit

reference quantity with which other quantities of the same kind are compared to
express their value

=== dimension

expression of the dependence of a physical quantity on the base quantities of a
system of quantities, in the form of a product of powers of factors
corresponding to the base quantities, omitting any numerical factors

=== prefix

named multiple or submultiple of a unit, used to form decimal multiples or
submultiples of units

=== quantity

property of a phenomenon, body, or substance, where the property has a magnitude
that can be expressed as a number and a reference

=== unit system

set of units, together with a set of equations relating them

=== quantity kind

aspect common to mutually comparable quantities

=== unit scale

specification of how values in a measurement scale are related, characterized by
properties such as whether they are continuous or discrete, ordered,
logarithmic, and whether they support interval or ratio comparisons
21 changes: 21 additions & 0 deletions sources/unitsml-urn/sections/04-principles.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
== principles

The UnitsML URN scheme follows these design principles:

Simplicity::
URNs should be easy to construct, parse, and understand

Readability::
When possible, URNs should be human-readable

Uniqueness::
Each URN must uniquely identify a specific resource

Persistence::
The meaning of a URN should not change over time

Compatibility::
The scheme should be compatible with existing UnitsML identifiers

Extensibility::
The scheme should accommodate future additions to the UnitsML framework
Loading