This repository contains the source files for the DRUM Book website and interactive report published by the CODATA Task Group on the Digital Representation of Units of Measurement (DRUM).
Appropriate representation of units of measurement in digital data is a critical requirement across scientific disciplines, commerce, international trade, and healthcare. Currently, no single universal standard governs digital unit representation, resulting in over 50 disparate implementation projects across different domains.
The CODATA DRUM Task Group aims to:
- Raise awareness of the importance of unambiguous digital unit representation.
- Maintain an inventory of current unit encoding formats, vocabularies, presentation systems, ontologies, and software packages.
- Harmonize standards by collaborating with international standards organizations, scientific unions, and digital infrastructure projects.
├── intro.md # Overview of the DRUM Task Group and mission
├── activities.md # Primary activities, strategic roadmap, and publications
├── inventory.md # Inventory of 50+ digital unit representation systems
├── taskgroup.md # Roster, leadership, and member affiliations
├── resources.md # External reference materials and links
├── myst.yml # MyST Markdown / Jupyter-Book configuration
├── pyproject.toml # Project configuration & dependencies (PEP 621)
├── uv.lock # Deterministic lockfile for uv
├── .lychee.toml # Link checker configuration
├── .lycheeignore # Patterns excluded from automated link checking
└── .github/workflows/
├── deploy.yml # GitHub Actions workflow for publishing to GitHub Pages
└── linkcheck.yml # GitHub Actions workflow for automated link verification
- Python 3.10+ (Python 3.13 recommended)
- uv (recommended fast package manager) or standard pip
- Git
Using uv (recommended):
# Clone the repository
git clone https://github.com/codata/drum-book.git
cd drum-book
# Sync virtual environment directly from pyproject.toml / uv.lock
uv syncUsing standard pip:
pip install .Using uv:
uv run jupyter-book build --htmlOr run directly via uvx:
uvx jupyter-book build --htmlUsing standard jupyter-book:
jupyter-book build --htmlThe generated site files will be located in _build/html/.
To launch an interactive local development server:
uvx jupyter-book startOr open the generated static HTML output directly:
- macOS:
open _build/html/index.html
- Linux:
xdg-open _build/html/index.html
- Windows (PowerShell):
Start-Process _build/html/index.html
The repository uses Lychee to verify external links in Markdown files.
If you have lychee installed locally:
lychee --config .lychee.toml --verbose './**/*.md'We welcome contributions from researchers, software developers, ontologists, and domain specialists!
- Update the Unit Systems Inventory: If you know of a missing software package, ontology, or vocabulary related to units of measurement, add it to
inventory.md. - Fix Typos or Outdated Links: Submit a pull request with updated documentation or references.
- Join the Task Group: We actively encourage membership from diverse scientific disciplines and geographic regions.
- Fork the repository and create a feature branch (
git checkout -b feature/my-update). - Make your changes in Markdown files (
.md). - Build the book locally using
jupyter-book build --htmlto test rendering. - Commit your changes (
git commit -m "Add new unit package to inventory"). - Push to your branch and open a Pull Request.
- Pascal Heus (DRUM Chair):
pascal@codata.org - Stuart Chalk (DRUM Executive Secretary):
schalk@unf.edu - CODATA DRUM Task Group: https://codata.org/initiatives/task-groups/drum/