Draft Status: This vocabulary is pre-stable (per D-PATH). The namespace URI is the stable major (workbench/v1#) but the version-info string is 1.0-draft. Pre-stable drafts are NOT registered in spec/VOCAB_VERSIONS; they land there only at v1.0 graduation. The schema may change before that point. Submit feedback

Overview

Namespace URI:
https://ns.cascadeprotocol.org/workbench/v1#
Preferred Prefix:
workbench:
Version:
1.0-draft.0.5 (2026-07-15)
Status:
Draft
Layer:
Layer 3 (application-specific vocabulary)
Imports / reuse:
cascade: (Core v1), evidence: (Evidence v1-draft), W3C Web Annotation (oa:), PROV-O, W3C RDF Calendar (ical:), SKOS
Schema files:
workbench.ttl (OWL ontology) · workbench.shapes.ttl (SHACL shapes)

The Workbench Vocabulary is the Layer 3 vocabulary for the Cascade Workbench desktop investigation app. It holds the app-specific workspace objects (Investigation, ImportedConversation, Hypothesis, Pin), the append-only record-amendment overlays (Amendment, Annotation, Retraction, Tombstone), the verification and filing axes, and the notes / research-flags / follow-ups substrate.

The assertion / evidence / verdict grounding model is deliberately NOT here: it is cross-cutting Layer 2 evidence:. Phenotype capture is NOT here either (it extends genomics:). Per the Layer 3 graduation rule, any class here that proves useful to other apps should graduate to Layer 2.

Download TTL Download Shapes All vocabularies

Workspace objects

ClassAnchorPurpose
workbench:InvestigationOWL ClassA named, longitudinal inquiry over one patient's Pod: the top-level workspace object. Aggregates conversations, hypotheses, pins, and notes over time.
workbench:ImportedConversationsubClassOf prov:EntityA conversation with a general-purpose AI assistant, imported as a source. Assertions extracted from it are evidence:Assertion instances carrying cascade:AIAsserted provenance.
workbench:HypothesisOWL ClassA candidate explanation with a lifecycle status. Designed to support widening the differential and explicitly retiring or excluding, not just confirming.
workbench:PinOWL ClassA curated bookmark pointing at any resource (record, assertion, citation) with an optional note.

Closed enumerations: Investigation status (Active, Paused, Resolved, Archived) and Hypothesis status (Proposed, Supported, Retired, Excluded).

Notes, research flags, and follow-ups: the W3C Web Annotation substrate (v1-draft.0.5)

Caregiver notes ("more tired than usual"), "needs research" flags on claims, and follow-ups ("recheck TSH in 3 months") are ONE artifact: an oa:Annotation over one or more graph nodes, distinguished by oa:motivatedBy. This section deliberately redeclares nothing from oa: / ical: / prov:; it documents the usage profile and mints the single term the standards lack.

ArtifactMotivation (oa:motivatedBy)Typical target
Caregiver noteoa:commentingAny record, condition, or the Investigation.
Research flagoa:questioningTypically an assertion / claim node.
Follow-up / open loopworkbench:followUpWhatever the loop concerns. Dual-typed cal:Vtodo.
  • Layer-1 reuse, nothing redeclared. oa: carries the body (oa:TextualBody, rdf:value holds the text), multi-target (oa:hasTarget), motivation, and span selectors (oa:TextQuoteSelector / oa:TextPositionSelector via oa:SpecificResource, the same byte-verified-span idea the Claims Ledger uses).
  • Attribution is required. PROV-O carries prov:wasAttributedTo (who wrote it: the caregiver, distinct from the patient and from any agent) and prov:generatedAtTime. A note that flows into grounding as caregiver-reported evidence carries this provenance with it.
  • Follow-ups are to-dos. A follow-up is additionally typed cal:Vtodo and reuses W3C RDF Calendar terms: ical:due (optional expected-completion date) and ical:status (required, the RFC 5545 VTODO enum NEEDS-ACTION / IN-PROCESS / COMPLETED / CANCELLED). No due-date or status property is minted. (schema:dueDate was considered and rejected: it does not exist, schema.org defines only paymentDueDate.)
  • Exactly one minted term. workbench:followUp is an oa:Motivation with skos:broader oa:questioning, per the Web Annotation model's custom-motivation extension rule (a custom motivation SHOULD be a skos:Concept with skos:broader to a standard one).
  • Removed in v1-draft.0.5. workbench:InvestigationNote, workbench:hasNote, and workbench:noteText (draft removal; never emitted by shipping code). An investigation-scoped note is now an oa:Annotation whose oa:hasTarget is the workbench:Investigation.
  • Pod placement. Annotations live in a top-level notes/ container (pod-structure.md §5.2), separate from annotations/, which holds the record-amendment overlays below (edit machinery, not user-authored content).

Append-only record-amendment overlays

Original records in a Pod are immutable. Every edit or delete is a NEW overlay resource written to the Pod's annotations/ directory and discovered at query time. Overlays carry cascade:dataProvenance cascade:SelfReported, an optional prov:wasAttributedTo actor, and a dct:created timestamp.

ClassPurpose
workbench:AmendmentOverrides one property value on an existing record without mutating the original (names the amended record, the predicate CURIE, and the new value).
workbench:AnnotationADDS a note or an extra attribute to an existing record without overriding any value. (Use Amendment to override, Annotation to augment.)
workbench:RetractionAppend-only soft-delete / supersede overlay (the entered-in-error pattern). The retracted record's bytes are retained.
workbench:TombstoneContent-free hard-erase audit marker. Records only the erasure EVENT (opaque id, actor, timestamp, action), never a content hash: a hash of an erased record's low-entropy health triples is brute-forceable pseudonymised data and would re-create the erasure obligation.

Verification and filing axes

  • Verification axis (v1-draft.0.3). workbench:verificationStatus plus VerificationStatusValue (Unverified, Confirmed, Refuted), orthogonal to the SOURCE axis (cascade:dataProvenance). Mirrors FHIR AllergyIntolerance/Condition.verificationStatus. Open domain, so it can tag any record; patient self-entered data defaults to Unverified. Candidate to graduate to Layer 2 clinical:.
  • Filing / organization axis (v1-draft.0.4). workbench:userSourceLabel (xsd:string), the user-chosen label for the SOURCE a record is filed under in the Workbench "filing cabinet". It is a filing preference attributed to the user, carried on a workbench:Annotation overlay (annotationProperty = "workbench:userSourceLabel", annotationValue = the chosen label) bearing cascade:SelfReported provenance. It MUST NOT overwrite the objective imported origin clinical:sourceEHR, which is preserved and displayed alongside; the effective grouping source prefers this label when present, else falls back to clinical:sourceEHR, else the import-batch tag. Open domain, so it can file any record. Reuses the already-shaped annotationProperty / annotationValue predicates, so no new SHACL shape is required.

Validation (SHACL)

workbench.shapes.ttl is SHACL Core only (like the evidence grounding invariant), so cascade validate actually enforces it. Alongside InvestigationShape, ImportedConversationShape, the four overlay shapes, and VerificationStatusShape, the notes substrate adds three shapes targeting every oa:Annotation in the Pod:

  • WebAnnotationShape. At least one oa:hasTarget (a note floats on nothing), at least one oa:motivatedBy, and required attribution (prov:wasAttributedTo plus an xsd:dateTime prov:generatedAtTime).
  • CommentingBodyShape. A note motivated by oa:commenting must carry a body (it must actually say something).
  • FollowUpShape. A note motivated by workbench:followUp must carry ical:status in the closed VTODO enum; ical:due stays optional.

All three violation classes were verified against cascade validate with positive and negative fixtures.

References

Provide Feedback

This vocabulary is in draft status. We welcome feedback on the notes substrate, the overlay model, and the verification and filing axes. Submit Feedback