Prototype. BattINFO is in active development, so content and tools are still changing.
BattINFO
Open standard · Beta

The language machines use to understand batteries

BattINFO builds on the open EMMO ontology — a shared, standardized vocabulary for materials and battery science — so battery data is machine-readable and reusable across tools and teams. It turns a folder of cycler exports into citable, findable records in about fifteen minutes. New to the terms? The glossary.

CI statusApache-2.0EMMO domain-battery 0.18.7Developed in the EU projects BIG-MAP & DigiBatt
CellThe physical cell on your benchTestWhat you did to it, linked foreverDatasetWhat it produced, citable, with a DOISemanticsShared meaning every record carries

Every record knows what it describes, what touched it, and what it produced, hover, then click through.

Quickstart

From cycler files to a citable dataset.

This is the real recipe, the same one ws.quickstart() prints, kept in sync by the test suite. Every step explained →

install
python -m venv .venv
# until the 0.8 release lands on PyPI, install from source:
.venv/bin/pip install git+https://github.com/BIG-MAP/BattINFO.git
the whole journey
import battinfo
ws = battinfo.workspace(".")

ws.convert()                          # cycler files -> tidy tables
hits = ws.search("molicel p45b")      # find your cell...
spec = hits[0] if hits else battinfo.CellSpec(...)  # ...or describe it
ws.add("cell", spec=spec, serial_numbers=["S1", "S2"])
ws.add("test", type="cycling", cell="S1", data="bdf/S1.bdf.csv")

ws.save()                             # validated records + stable IRIs
ws.publish(zenodo=True)               # citable DOI + registry

How it works

From datasheet to machine-readable Linked Data, in four steps.

  1. 1

    Author

    Write plain, readable JSON — the same fields you already put on a datasheet or spec. No ontology expertise required.

  2. 2

    Validate

    Check structure, references, and semantics against one contract-grade engine, with stable issue codes.

  3. 3

    Convert

    A deterministic, mapping-driven transform emits canonical EMMO-aligned JSON-LD — and valid RDF.

  4. 4

    Publish

    Get back a stable w3id.org/battinfo IRI. Your record is now Linked Data anyone can resolve and reuse.

What BattINFO does

Real semantics, without losing the data on the way.

Ontology-aligned

Every record is typed against EMMO domain-battery. BattINFO is the non-normative implementation layer; the ontology stays the source of truth.

JSON-LD first

Author plain JSON; publish valid RDF. A deterministic, mapping-table-driven transform produces canonical EMMO-aligned JSON-LD.

Validated, multi-layer

JSON Schema 2020-12, Pydantic, JSON-LD URDNA2015 normalisation, semantic rules, and referential integrity — not just shape-checking.

Persistent identifiers

Published entities carry stable, opaque w3id.org/battinfo/{type}/{uid} IRIs, governed by a published identifier policy.

One coherent model

Linked record types with a shared provenance chain.

Cell spec → Cell → Test → Dataset

Cell spec

An as-designed cell specification (a product / SKU).

Cell

A physical, individually-tracked cell of a spec.

Test

A measurement performed on a cell under a protocol.

Dataset

The data and files a test produced, with distributions.

Test spec

The reusable procedure a test was run under.

Organization

Manufacturers, labs, and publishers, as linked entities.

Each type has a canonical JSON Schema and an EMMO mapping. See a worked example →

Who it's for

One model, two audiences.

Engineers, designers & data owners

Describe cells, builds, and tests in JSON you can read. Keep units explicit and provenance linked — and move data cleanly across teams, suppliers, and tools without learning RDF.

Author your first record

Software & data teams

A stable JSON Schema contract, a Python library and CLI, structured validation issue codes, and JSON-LD you can load into any database or triplestore.

Read the schemas & API

Principles

Built to be depended on.

Open & non-proprietary

Schemas, mappings, and tooling are public and openly licensed. The normative semantics live in the community EMMO ontology, not in this project.

Stable, resolvable identifiers

Published entities get opaque, persistent IRIs under w3id.org/battinfo, governed by a written identifier policy — they don't break when the site changes.

Versioned & reproducible

Upstream ontologies are pinned; the transform is deterministic; validation policies are versioned so downstream systems can rely on them.

Layered, not monolithic

EMMO is the source of truth; BattINFO is the operational layer of schemas and tools. Each layer can evolve without rewriting the other.

Build on the battery genome.

BattINFO is open infrastructure. Publish your data, validate a record in the browser, or read the docs.