SSMDE – Interoperability (2.3)

Embed anywhere. Keep meanings intact. Get instant lift-off.

Core idea

You can carry SSMDE inside any envelope (bus, file, API, DB). Interoperability is about placement, not semantic change.

# SSMDE block (portable unit)
{ "value": <...>, "align": <...>, "band": <...>, "manifest_id": "<...>", "stamp": "<...>" }


Disclosure modes (choose per audience)

Keep one payload shape; vary what you expose.

# value-only
{ "value": <...> }

# value+band (human ops)
{ "value": <...>, "band": "<...>", "manifest_id": "<...>" }

# full SSMDE (audit-grade)
{ "value": <...>, "align": <...>, "band": "<...>", "manifest_id": "<...>", "stamp": "SSMCLOCK1|...|sha256=...|prev=..." }

Rule: Hidden fields may be suppressed for privacy, but when present, meanings must match SSMDE.


Transport-agnostic patterns (copy-ready)

Message bus / stream

topic := "plant/lineA/thermal"
payload := {
  "value":       { "temperature_K": 296.42 },
  "align":       tanh( U / max(W, eps_w) ),   # after clamp → atanh → fuse
  "band":        band_from_align(align, mid),
  "manifest_id": mid,
  "stamp":       "SSMCLOCK1|2025-11-04T14:05:22Z|theta=132.77|sha256=9fde1c...|prev=72af0b..."
}
emit(topic, payload)

HTTP / REST (producer)

GET /api/v1/reading/thermo/lineA

200 OK
{
  "value":       { "temperature_K": 296.42 },
  "align":       0.87,
  "band":        "GREEN",
  "manifest_id": "THERMAL_LINE_COOLING_PLANT_A_v7",
  "stamp":       "SSMCLOCK1|2025-11-04T14:05:22Z|theta=132.77|sha256=9fde1c...|prev=72af0b..."
}

Webhook (consumer)

POST /receiver/ssmde
body := {
  "value":       { "cash_collected_usd": 18420.77 },
  "align":       -0.31,
  "band":        "A-",
  "manifest_id": "AR_STABILITY_Q4_CLOSE_v2",
  "stamp":       "SSMCLOCK1|2025-11-04T14:06:41Z|theta=044.91|sha256=ab12d4...|prev=89c2aa..."
}

CSV / Parquet (bulk handoff)

timestamp_utc, value.temperature_K, align, band, manifest_id, stamp
2025-11-04T14:05:22Z, 296.42, 0.87, GREEN, THERMAL_LINE_COOLING_PLANT_A_v7, SSMCLOCK1|...|sha256=...|prev=...

Database / Warehouse

table ssmde_records (
  ts_utc        TIMESTAMP,
  value_json    JSONB,
  align         DOUBLE,
  band          TEXT,
  manifest_id   TEXT,
  stamp         TEXT,
  PRIMARY KEY (ts_utc, manifest_id)
)

-- recommended indexes
INDEX idx_manifest_time (manifest_id, ts_utc)
INDEX idx_band_time     (band, ts_utc)


Gateway computation (tiny edges, smarter hubs)

Compute align at an aggregation node if leaf devices are too small. Declare it in the manifest.

# normative dial
a_c   := clamp(a_raw, -1+eps_a, +1-eps_a)
u     := atanh(a_c)
U     += w * u
W     += w
align := tanh( U / max(W, eps_w) )


Backward compatibility (drop-in adoption)

Start by appending SSMDE fields to existing outputs.

legacy := { "voltage_V": 218.4 }

record := {
  "value":       legacy,                       # untouched fact
  "align":       tanh( U / max(W, eps_w) ),    # bounded dial
  "band":        band_from_align(align, mid),  # policy stance
  "manifest_id": mid,
  "stamp":       "SSMCLOCK1|...|sha256=...|prev=..."
}


Do / Don’t (guardrails)

Do:
• Keep phi((m,a)) = m (value is byte-for-byte original)
• Keep -1 < align < +1 (bounded)
• Derive band via manifest cutpoints
• Ensure manifest_id resolves to immutable policy
• Use stamp to bind time+content+order where accountability matters

Don’t:
• Smooth or renormalize value then still call it value
• Emit unbounded “score” as align
• Hand-paint bands without manifest cutpoints
• Point manifest_id to mutable/opaque documents
• Replace stamp with a plain timestamp


Receiver checklist (quick verify)

[ ] sha256(bytes(canonical(record))) == parse(stamp,"sha256")
[ ] parse(stamp,"prev") chains to prior digest
[ ] -1 < align < +1
[ ] band == band_from_align(align, manifest_id)
[ ] manifest_id resolves and matches cutpoints used
[ ] phi((m,a)) = m holds (value unchanged)


Rollout plan (copy-ready)

Day 1 — Append SSMDE block; emit value, align, manifest_id.
Week 1 — Add band; publish cutpoints + promises in manifest; basic stamp.
Month 1 — Verify chains; index by manifest_id+time; enable disclosure modes; train ops on duty-of-care windows.


Navigation

Previous: SSMDE – Independence (2.2)
Next: SSMDE – Licensing and attribution (2.4)


Directory of Pages
SSMDE – Table of Contents