IMAS Standard Names
Grammar library for IMAS Standard Names — a controlled vocabulary for fusion data variables.
This repository owns the grammar: the controlled vocabulary, the parser and renderer, catalog validation, and the documentation site. AI-assistant tools over standard names are served by imas-codex.
Quick Start
pip install imas-standard-names
Python Library
from imas_standard_names import StandardNameIR, compose, parse
from imas_standard_names.repository import StandardNameCatalog
catalog = StandardNameCatalog()
entry = catalog.get("electron_temperature")
print(f"{entry.name}: {entry.unit} — {entry.description}")
# Strict parsing is the validity oracle for both flat names and recursive
# operator expressions.
result = parse("square_of_inverse_of_pressure", strict=True)
assert isinstance(result.ir, StandardNameIR)
assert [operator.op for operator in result.ir.operators] == ["square", "inverse"]
assert compose(result.ir) == "square_of_inverse_of_pressure"
Installation
The tools and catalog are distributed separately:
| Package | Purpose |
|---|---|
imas-standard-names |
Grammar library, parser, validation |
imas-standard-names-catalog |
Standard names catalog (YAML + SQLite) |
Basic Installation
# Tools + catalog (recommended)
pip install imas-standard-names[catalog]
# Tools only
pip install imas-standard-names
Catalog Options
The catalog can be accessed in several ways:
# Option 1: Install catalog package (recommended)
pip install imas-standard-names-catalog
# Option 2: Download pre-built database
wget https://github.com/iterorganization/imas-standard-names-catalog/releases/latest/download/catalog.db
export STANDARD_NAMES_CATALOG_DB=./catalog.db
# Option 3: Clone catalog repository (for development)
git clone https://github.com/iterorganization/imas-standard-names-catalog.git
export STANDARD_NAMES_CATALOG_ROOT=./imas-standard-names-catalog/standard_names
Development Setup
git clone https://github.com/iterorganization/imas-standard-names.git
cd imas-standard-names
uv sync
Architecture
This project uses a two-repository architecture:
- imas-standard-names (this repo): Grammar library, parser, validation, Python API
- imas-standard-names-catalog: YAML source files and pre-built SQLite database
Name generation is handled by imas-codex, which uses ISN's grammar API to mint candidates.
This separation allows independent versioning — catalog content, tooling, and generation logic evolve separately.
Documentation
Full documentation: iterorganization.github.io/IMAS-Standard-Names
- Grammar Reference — naming rules and vocabulary
- Guidelines — patterns and conventions
- Quick Start — getting started
- Architecture — project boundary and API contract
Python API
| Entry point | Purpose |
|---|---|
imas_standard_names.parse(name, strict=True) |
Authoritative validation for flat and recursively ordered grammar |
imas_standard_names.parse(name) |
Diagnostic parse into a lossless StandardNameIR |
imas_standard_names.compose |
Render a StandardNameIR into its canonical spelling |
imas_standard_names.StandardNameIR |
Public recursive representation; operator lists are outermost first |
imas_standard_names.grammar.model.parse_standard_name |
Strict-validating projection into the flat StandardName facade; may reject a valid ordered tree it cannot represent |
imas_standard_names.validate_round_trip |
Diagnostic parse/render drift check; not a validity test |
imas_standard_names.grammar.context.get_grammar_context |
Grammar rules and vocabulary for LLM pipelines |
imas_standard_names.repository.StandardNameCatalog |
Query the catalog |
imas_standard_names.canonical_unit |
Canonical unit authority |
standard-names (CLI) |
Build, search, and serve the catalog site |
validate_catalog (CLI) |
Check catalog integrity and grammar compliance |
Tools that expose these over the Model Context Protocol live in imas-codex.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file imas_standard_names-0.8.1.tar.gz.
File metadata
- Download URL: imas_standard_names-0.8.1.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dce783842a229d21b9dfb548b1be5a7862e56bcc77fe8422541d53398346a19
|
|
| MD5 |
1185c45c808b2944f6ef176a426a5fac
|
|
| BLAKE2b-256 |
01ef8a5938040f152dc519cc1162125506719f08c75919c4cddb59988e9de27c
|
Provenance
The following attestation bundles were made for imas_standard_names-0.8.1.tar.gz:
Publisher:
release.yml on iterorganization/IMAS-Standard-Names
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
imas_standard_names-0.8.1.tar.gz -
Subject digest:
6dce783842a229d21b9dfb548b1be5a7862e56bcc77fe8422541d53398346a19 - Sigstore transparency entry: 2685292511
- Sigstore integration time:
-
Permalink:
iterorganization/IMAS-Standard-Names@fed922f8b174bac0b5aa3a4e16b723521d0f26d5 -
Branch / Tag:
refs/tags/v0.8.1 - Owner: https://github.com/iterorganization
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fed922f8b174bac0b5aa3a4e16b723521d0f26d5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file imas_standard_names-0.8.1-py3-none-any.whl.
File metadata
- Download URL: imas_standard_names-0.8.1-py3-none-any.whl
- Upload date:
- Size: 351.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3f6749c119140fe24d100c0ab8c5340b6ea69c1ac7e8cdaf945662d0a80e20e
|
|
| MD5 |
1c6d00243c8357a07aa85f3c5301811c
|
|
| BLAKE2b-256 |
18b66f451a6afb5ef7a552dc3adf810dce3361ed0d133505b5dcb23b05ac96fb
|
Provenance
The following attestation bundles were made for imas_standard_names-0.8.1-py3-none-any.whl:
Publisher:
release.yml on iterorganization/IMAS-Standard-Names
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
imas_standard_names-0.8.1-py3-none-any.whl -
Subject digest:
b3f6749c119140fe24d100c0ab8c5340b6ea69c1ac7e8cdaf945662d0a80e20e - Sigstore transparency entry: 2685292519
- Sigstore integration time:
-
Permalink:
iterorganization/IMAS-Standard-Names@fed922f8b174bac0b5aa3a4e16b723521d0f26d5 -
Branch / Tag:
refs/tags/v0.8.1 - Owner: https://github.com/iterorganization
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fed922f8b174bac0b5aa3a4e16b723521d0f26d5 -
Trigger Event:
push
-
Statement type: