Responsibility split
Normal Workbench and Assistant operations are read-only toward ontology data. The only ontology write path is the explicit initializer or version upgrade. Proposals and execution audit records stay in the plugin namespace; they are not written back as ontology facts.
Package a versioned ontology bundle
The plugin ships a code-owned bundle with stable resource IDvalve-engineering-ontology. Version 1.0.0 contains neutral product-demo content:
The bundle has no customer production records or external data bindings. This makes initialization deterministic and safe for a product demonstration while preserving the same published ontology contract a production integration would use.
Why the bundle stays server-side
The iframe never supplies the resource ID, semantic version, definition content, tenant, organization, or data-xpert endpoint. Those values come from plugin code, configuration, and the host runtime. This prevents a browser caller from changing the ontology scope or importing an arbitrary definition through the Workbench bridge.Initialize through the definition lifecycle
Connecting data-xpert does not write the ontology. A Workbench user must select Initialize ontology and confirm.1
Check the fixed resource and version
The plugin checks whether
valve-engineering-ontology exists and whether the code-owned semantic version is already published.2
Create or replace the draft
If no definition exists, the plugin creates it. If an unpublished draft exists, the user must explicitly confirm that the code-owned bundle will overwrite that draft.
3
Validate in data-xpert
The complete draft is sent through the ontology-definition API and validated against the same entity, relationship, Action, instance, and relation rules used by Ontology Studio.
4
Publish the semantic version
data-xpert creates an immutable version and a published snapshot, then updates runtime projections.
5
Refresh ready resources
The plugin reloads resources and only exposes objects from an active,
ready resource containing the exact root entity type code valve.already_current and creates no duplicate version. To upgrade, change the code-owned model, increment its semantic version, redeploy, and let the Workbench offer Update ontology. Never rewrite an already-published semantic version.
Build Object 360 from a published neighborhood
After initialization, the Workbench uses the current user’s short-lived Actor Token on the server to call data-xpert Agent Tools. It revalidates the organization, active resource, ready status, optional resource allowlist, optional definition filter, and exactvalve root type.
For a selected valve, the plugin combines the current entity with its one-hop neighborhood to show:
- stable identity and typed properties;
- components, materials, actuator, and applicable standards;
- relationship direction and related object details;
- evidence and source summaries;
- structured constraints and warnings;
- Action definitions available for the current type;
- snapshot ID and graph version used by the view.
Turn ontology Actions into governed operations
The ontology defines the business meaning of an Action: stable code, target type, risk, approval requirement, input contract, preconditions, discovery mode, and expected effects. The plugin maps that stableactionTypeCode to an execution adapter.
The Valve example includes:
When configured for a customer Demo, the plugin may expose clearly labelled fallback Actions that are missing from the current ontology. Disable fallback when every visible Action must come from data-xpert.
Preflight before proposal creation
Before creating anontology_action proposal, the Assistant or Workbench runs valve_preflight_action. Preflight is read-only and checks:
- whether the Action applies to the current entity type;
- whether the Demo adapter is enabled;
- required input and numeric ranges;
- whether the proposal’s graph version is stale;
- duplicate open work, such as another pending or approved maintenance proposal;
- ontology constraints and simulation-only warnings.
Keep approval and execution human-controlled
The Assistant middleware provides strict tools for ready-resource discovery, schema inspection, object search, Object 360, Action discovery, preflight, proposal listing, proposal creation, and audit retrieval. Its only mutation is idempotent creation of apending_review proposal.
It deliberately has no approve, reject, or execute tool.
execution_failed instead of inventing a success receipt. The CRITICAL valve-isolation path is labelled simulation_only and never claims to send a DCS or SIS command.
Security and scope pattern
The Valve plugin demonstrates several reusable rules:- keep Actor Tokens and tenant identity on the server side of the view bridge;
- obtain identity from the current host request instead of browser configuration;
- require active organization scope for every data-xpert call;
- allowlist resources only after the plugin-owned ontology is initialized;
- validate stable entity type codes instead of guessing from display names or properties;
- pin snapshot and graph version during preflight;
- separate semantic Action definition from execution credentials and adapter code;
- keep initialization, managed Assistant provisioning, and normal Workbench operation as separate lifecycle steps;
- make consequential transitions visible, authenticated, idempotent, and auditable.
Reusable plugin blueprint
To apply this pattern to another domain:- define stable entity, relationship, property, and Action codes;
- decide whether the plugin ships a neutral ontology bundle, binds customer resources, or does both;
- publish through data-xpert rather than maintaining a private graph format;
- require explicit confirmation for initialization and semantic-version upgrades;
- discover objects from
readysnapshots and validate an exact root entity type; - build compact domain DTOs from entity neighborhoods, evidence, constraints, and Actions;
- map Action codes to plugin-owned adapters without putting credentials in the ontology;
- require preflight and graph-version checks before creating a proposal;
- reserve approval and execution for an authenticated user surface when risk requires it;
- persist proposal, execution receipt, and append-only audit separately from ontology facts.