BattINFO#

BattINFO is the semantic data layer for battery technology — a Python library, CLI, and canonical asset suite that validates, maps, and publishes battery metadata as machine-readable Linked Data aligned with the EMMO Battery Domain Ontology.

Here is a minimal example that creates a canonical cell-spec record and publishes it locally. It uses the same flagship cell shown on battinfo.org (A123 ANR26650M1-B); the full canonical record lives at examples/cell-spec/A123__ANR26650M1-B.json.

from battinfo import CellSpec, publish

spec = CellSpec(
    manufacturer="A123",
    model="ANR26650M1-B",
    format="cylindrical",
    chemistry="Li-ion",
    nominal_capacity={"value": 2.5, "unit": "Ah"},
)

result = publish(spec, destination="local")
# → writes a canonical BattINFO record with a persistent spec IRI
{
  "schema_version": "0.1.0",
  "cell_spec": {
    "id": "https://w3id.org/battinfo/spec/7d9k-2m4p-8t3x-6nq5",
    "name": "A123 ANR26650M1-B",
    "model": "ANR26650M1-B",
    "manufacturer": { "type": "Organization", "name": "A123" },
    "category": "battery cell",
    "cell_format": "cylindrical",
    "chemistry": "Li-ion",
    "positive_electrode_basis": "LFP"
  },
  "properties": {
    "nominal_capacity": { "value": 2.5, "unit": "Ah" },
    "nominal_voltage":  { "value": 3.3, "unit": "V" }
  }
}
{
  "@context": "https://w3id.org/battinfo/context/domain-battery.jsonld",
  "@id": "https://w3id.org/battinfo/spec/7d9k-2m4p-8t3x-6nq5",
  "@type": ["BatteryCell", "CylindricalBattery", "LithiumIonBattery"],
  "skos:prefLabel": "A123 ANR26650M1-B",
  "manufacturer": { "@type": "Organization", "name": "A123" },
  "hasProperty": [
    {
      "@type": ["NominalCapacity", "ConventionalProperty"],
      "hasNumericalPart": { "@type": "Real", "hasNumericalValue": 2.5 },
      "hasMeasurementUnit": "https://w3id.org/emmo#AmpereHour"
    }
  ]
}

Explore the documentation#

The documentation follows the Diátaxis structure: tutorials teach, how-to guides solve one task each, reference states the facts, and concepts explain the design.

Get Started

Install BattINFO and publish your first records in five minutes.

pages/getting-started.html

Tutorials

Six notebooks, one story — from the record model to a published, citable dataset.

pages/guides.html

How-to guides

Task-shaped recipes: bulk ingest, fixing validation errors, resuming submissions, funding tags.

pages/howto.html

Reference

Python API, CLI commands, schemas, and the validation policy contract.

pages/reference.html

Concepts

Ontology architecture, the spec-and-instance model, and how BattINFO is built.

pages/concepts.html

How BattINFO is built

The orientation roadmap: layers, data flow, and where each module fits.

how-battinfo-is-built.html