Organizations#

How to describe an organization — the manufacturers, labs, and publishers other records point at.

  • Identity is the same_as registry link (ROR, Wikidata); the body carries the display name and its variants.

  • Other records point here: manufacturer.id on specs, publisher on datasets.

  • An editorial block records curation decisions (for example, supersession on a name change).

Define one#

A manufacturer#

# No authoring API exists for organizations yet, so the reference example
# is the record itself (data-first, the documented fallback).
record = {
    "schema_version": "0.2.0",
    "organization": {
        "id": "https://w3id.org/battinfo/organization/s6y8-5mne-94gx-e5ve",
        "short_id": "s6y85m",
        "type": "Manufacturer",
        "name": "Example Instruments",
        "url": "https://www.example-instruments.test",
        "same_as": ["https://ror.org/000000000"],
        "description": "Fictional bench-equipment manufacturer for this example.",
    },
    "provenance": {
        "source_type": "manual",
        "source_url": "https://www.example-instruments.test",
        "retrieved_at": 1750000000,
    },
}
{
  "schema_version": "0.2.0",
  "organization": {
    "id": "https://w3id.org/battinfo/organization/s6y8-5mne-94gx-e5ve",
    "short_id": "s6y85m",
    "type": "Manufacturer",
    "name": "Example Instruments",
    "url": "https://www.example-instruments.test",
    "same_as": [
      "https://ror.org/000000000"
    ],
    "description": "Fictional bench-equipment manufacturer for this example."
  },
  "provenance": {
    "source_type": "manual",
    "source_url": "https://www.example-instruments.test",
    "retrieved_at": 1750000000
  }
}

Known gap

Three gaps meet on this family: no authoring API (the record above is authored directly, data-first), no JSON-LD emitter, and no entities-registry kind — so organization records are outside the semantic validation path and are checked against the JSON Schema only.

Common examples#

A selection of real, validated records from the packaged examples corpus — each one click away, included from its single source under examples/. The full, living library is the registry: browse it there.

A123 Systems (organization)

The record ships in the installed wheel — load it as a starting point:

import json
from importlib import resources

record = json.loads(
    resources.files("battinfo")
    .joinpath("data/examples/organization/A123.json")
    .read_text(encoding="utf-8")
)
{
  "schema_version": "0.2.0",
  "organization": {
    "id": "https://w3id.org/battinfo/organization/8z6j-n7vw-e73w-smh7",
    "short_id": "8z6jn7",
    "type": "Manufacturer",
    "name": "A123 Systems",
    "legalName": "A123 Systems LLC",
    "alternateName": [
      "A123"
    ],
    "url": "https://www.a123systems.com",
    "same_as": [
      "https://www.wikidata.org/wiki/Q279389"
    ],
    "location": {
      "addressCountry": "US",
      "addressRegion": "Massachusetts"
    },
    "description": "Lithium iron phosphate cell and battery system manufacturer."
  },
  "provenance": {
    "source_type": "manual",
    "source_url": "https://www.a123systems.com",
    "retrieved_at": 1750000000
  }
}
Celgard (organization)

The record ships in the installed wheel — load it as a starting point:

import json
from importlib import resources

record = json.loads(
    resources.files("battinfo")
    .joinpath("data/examples/organization/Celgard.json")
    .read_text(encoding="utf-8")
)
{
  "schema_version": "0.2.0",
  "organization": {
    "id": "https://w3id.org/battinfo/organization/9jcc-71jq-m4vk-r8jm",
    "short_id": "9jcc71",
    "type": "Manufacturer",
    "name": "Celgard",
    "description": "Separator manufacturer (microporous polyolefin membranes) referenced in the Discovery-Benchmark cells.",
    "url": "https://www.celgard.com"
  },
  "provenance": {
    "source_type": "manual",
    "retrieved_at": 1750000000
  }
}
Empa (organization)

The record ships in the installed wheel — load it as a starting point:

import json
from importlib import resources

record = json.loads(
    resources.files("battinfo")
    .joinpath("data/examples/organization/EMPA.json")
    .read_text(encoding="utf-8")
)
{
  "schema_version": "0.2.0",
  "organization": {
    "id": "https://w3id.org/battinfo/organization/mtf8-84d1-addg-nnvv",
    "short_id": "mtf884",
    "type": "ResearchOrganization",
    "name": "Empa",
    "legalName": "Swiss Federal Laboratories for Materials Science and Technology",
    "alternateName": [
      "EMPA",
      "Empa"
    ],
    "url": "https://www.empa.ch",
    "same_as": [
      "https://ror.org/02x681a42",
      "https://www.wikidata.org/wiki/Q683116"
    ],
    "location": {
      "addressCountry": "CH",
      "addressLocality": "Dübendorf"
    },
    "description": "Swiss Federal Laboratories for Materials Science and Technology, an interdisciplinary research institute of the ETH Domain with battery materials and electrochemistry activity."
  },
  "provenance": {
    "source_type": "manual",
    "source_url": "https://www.empa.ch",
    "retrieved_at": 1750000000
  }
}

Fields#

Generated from the packaged JSON Schemas — the same files battinfo validate and the registry’s publish gate enforce. Every record also carries the shared envelope (schema_version, provenance, and optional notes, funding, contributor, license). Quantities are {value, unit} maps and may also carry value_basis (Measured, Conventional, Rated, or Nominal) and conditions (the parameters under which the value holds, each itself a quantity; a qualitative condition may be value_text alone). In JSON-LD, conditions ride a measurement node the quantity isOutputOf; the voltage_reference key instead becomes a hasMetrologicalReference datum on the quantity, beside its unit. When authoring, an instance references its spec with the spec_id= kwarg; the record stores the self-describing <type>_spec_id key shown in the tables below.

organization fields#

Schema: organization.schema.json · required at top level: schema_version, organization, provenance

The organization block:

Field

Type

Required

Description

id

→ OrganizationIri

yes

Canonical IRI of this organization record.

short_id

→ ShortId

type

Organization | Corporation | Manufacturer | ResearchOrganization … (8 values)

Organization kind (schema.org type).

name

string

yes

Current preferred name of the organization.

legalName

string

Full legal name, if different from name.

alternateName

string or array of string

Former names, abbreviations, or brand names (e.g. ‘LG Chem’ for LG Energy Solution).

url

string

Official website URL.

same_as

string or array of string

Canonical external IRIs (Wikidata, ROR, GRID, LEI) that identify this organization.

location

object

Headquarters or principal location.

foundingDate

string

Year or ISO 8601 date the organization was founded.

dissolutionDate

string

Year or ISO 8601 date the organization was dissolved, if applicable.

description

string

Short description of the organization.

parentOrganization

→ OrganizationIri or object

Parent organization, if this is a subsidiary or division.

Top-level editorial: Internal editorial metadata — not forwarded to the registry semantic payload.