Scrydon
Ontology

Bindings

How a typed Object instance is projected from a real source — managed table, knowledge-base page, process-flow task, or manual entry.

A binding is the rule that tells the ontology how to materialise a typed Object instance from a real source. Bindings are the bridge between L2 (schema) and the underlying data layer.

Projection on read

A binding does not copy rows into a new table:

   regulated_entities (managed table)
   ┌─────────────────────────────────────────┐
   │ EntityID │ LegalName    │ RiskClass    │
   ├─────────────────────────────────────────┤
   │ e1...01  │ Acme Holdings│ medium       │
   │ e1...02  │ Neptune Cap. │ high         │
   └─────────────────────────────────────────┘

                 │   binding (silver_table)
                 │   columnMap:
                 │     id              ← EntityID
                 │     legalName       ← LegalName
                 │     riskClass…      ← RiskClass

   RegulatedEntity (typed Object — projected on demand)
   { id: "e1...01", legalName: "Acme…", riskClassification: "medium" }

When a caller reads a RegulatedEntity, the binding's projection runs against the source table and returns typed instances. Re-uploading the source CSV is reflected on the next read.

Binding kinds

KindSourceStatus
silver_tableA managed table — your CSV / JSON uploadsshipped
memex_pageA knowledge-base pageshipped
process_flow_taskA process-flow task instanceshipped
manualSDK / workbench writes — no upstreamshipped
process_flow_action, extraction, streamEntity-link actions, extraction pipelines, pub/sub topicspreview

A pack can ship bindings of any kind. Bindings can also be authored directly from the workbench's Bindings tab without touching the SDK.

Column map

For a silver_table binding, the column map declares which source column populates each Object property:

Object property      Source column
─────────────────    ─────────────────
id              ←    EntityID
legalName       ←    LegalName
riskClass…      ←    RiskClass

The column map is editable from the Bindings tab. The picker accepts both the physical column name (fius_fiu_id) and the display name (fius.fiu_id) — see Column names for how the two are kept in sync.

Ready vs. not ready

A binding shows one of three status badges in the workbench:

BadgeMeaningWhat to do
ReadySource resolved, every column-map value matches a column on the bound table.Use it.
Not ready — table not registeredThe pack ships a logical source name; no matching table exists in this workspace yet.Click Pick table, choose the right managed table — the picker highlights an exact name match.
Not ready — missing columnsThe bound table doesn't have every column the column map references.Edit the column map — pick the right column for each property.

The Ready check is a live probe, not a cache. It re-runs on every list, so a binding that flips from Ready to Not ready means something changed upstream (table archived, columns renamed).

DLP labels and masking

Every projected instance carries the DLP labels of its source:

  • A property bound to a column classified confidential inherits that classification.
  • A masking strategy applied to the source column also applies to the projected property.
  • A caller without clearance for the column sees the masked value in the projected Object, not the raw value.

This is what makes the ontology safely exposable to agents — there is no way for an agent to read a typed Object and bypass the column-level governance on its source.

Provenance

Every projected instance carries provenance:

FieldValue
bindingIdWhich binding produced this instance
bindingVersionWhich version of that binding
sourceRefA reference to the source row (e.g. EntityID="e1...01")
materializedAtThe timestamp of the projection
dlpLabelsThe DLP labels that flowed through

Workflow tools and the analyst surface this provenance alongside the data, so the user can always answer "where did this come from?".

Provenance is read-only at the binding layer — it's emitted by the projection, never authored by the user. Bindings authored manually in the workbench still carry provenance referring to the workbench itself as the source.

On this page

On this page