ARCHITECTURE · ISA-95
2,461 mappings·1,027-field schema·ISA-95 categorized·deterministic
ISA-95 gives the industry a shared way to talk about equipment and production. Most data models cite it. This one is actually tagged with it.
Plenty of platforms say they are ISA-95 aligned and mean their hierarchy has an Enterprise level. The equipment and production models in Part 2 and Part 4 are the useful part, and they are the part usually skipped, because categorizing several hundred fields is dull work that no demo shows.
Without it, a consumer wanting every condition-monitoring signal on a line has to know, in advance, that bearing_temperature and vibration_mm_s belong together and spindle_speed_rpm does not. That knowledge lives in a spreadsheet and rots.
equipment_performance, equipment_state, equipment_condition, production_performance, production_quality, energy_consumption, electrical_measurement, environmental, storage, safety. Two fields that look alike often land in different categories: a motor temperature is condition, not performance, because it reports health rather than output.
| Raw vendor tag | Canonical field | ISA-95 category | |
|---|---|---|---|
| S1Temp | → | spindle_temperature | equipment_condition |
| SPINDLE_SPEED_ACT | → | spindle_speed_rpm | equipment_performance |
| ALARM | → | alarm_code | equipment_state |
| PART_COUNT | → | part_count | production_performance |
| AC_Power | → | inverter_output_kw | energy_consumption |
| AC_Frequency | → | grid_frequency_hz | electrical_measurement |
Every row above is produced by the shipping engine, not written by hand. This page fails to build if any of them stops resolving to the field shown.
Resolution is a lookup, not an inference. A tag is matched against a curated corpus of 2,461 confirmed vendor mappings; only if that misses does it fall to weaker layers: a normalized fold that strips unit suffixes and separators, then a signal classifier that reads structure and unit evidence. Each layer carries a lower confidence, and the layer that answered is named in the response. A mapping you disagree with is visible rather than buried.
Below a confidence threshold the engine abstains. An evidence gate refuses a match it cannot justify and reports the tag unresolved, by name, with the score and the reasons, because a wrong field at high confidence is far more expensive than an honest miss. Six read-time validators then check what survives: sentinel detection, physics bounds, stuck sensors, dropout, operating mode and correlation.
Units are converted to SI where the source unit is known, and every conversion is reported with its factor. A value that fails a physics bound is nulled with the bound it violated attached, not silently dropped.
It does not invent fields. A tag outside the corpus that the signal layer cannot justify comes back unresolved and counted, and those names feed the roadmap for the next pack rather than a plausible guess in your data. It is a translation layer, not a historian: it holds no time series and replaces no SCADA system. And the container is a sandbox: it ships the deterministic layers and the canonical schema, not the production embedding, research and corpus-learning layers.
No key, no account, no sales call. The sandbox runs locally and answers with the same canonical schema production does.
Call POST /v1/normalize?include_context=true and every emitted field comes back with its unit, physical quantity, ISA-95 category, resolution confidence and match type, enough for a consumer to route on category without a lookup table of its own.
The categorization ships in the container. See platform licensing for embedding the canonical data model in your own product, or pricing for usage-based API access.