A.2.9:4.2 — Minimal structure (normative)

Preface node heading:a-2-9-4-2-minimal-structure-normative:5131

Content

A conforming U.SpeechAct SHALL be representable by the following minimal record (field names are illustrative; the constraints are normative):

U.SpeechAct <: U.Work

Invariant: U.Work.kind = Communicative

U.SpeechAct ::=
  U.Work
  & {
      actTypes: set<SpeechActTypeRef>,               // ≥1 act types (supports multi-function)
      addressedTo: optional<set<AddresseeRef>>,      // optional: who is addressed / audience
      utteranceRefs: optional<set<DescriptionRef>>,  // where the utterance content is stated/recorded (A.7: Description)
      carrierRefs: optional<set<CarrierRef>>,        // evidence carriers/traces (A.7: Carrier; use A.10 when evidentiary)
      institutes: optional<InstitutedEffects>,       // references to objects/claims instituted/updated by this act
      notes: optional<InformativeText>               // explicitly informative
    }

DescriptionRef ::=
  ClaimIdRef | EpistemeRef
  // Pointer to an utterance description (e.g., spec clause claim ID, a policy episteme, a message-content episteme).

SpeechActTypeRef ::=
  ContextLocalTokenRef
  // Must be defined/recognized in the Work’s judgement context (bounded context).

AddresseeRef ::=
  PartyRef | RoleRef | RoleAssignmentRef

InstitutedEffects ::=
  {
    commitments: optional<set<CommitmentIdRef>>,
    roleAssignments: optional<set<RoleAssignmentRef>>,
    statusClaims: optional<set<ClaimIdRef>>,         // e.g., “StandardStatus=Approved” if modeled as claims
    other: optional<set<ObjectIdRef>>
  }

Normative constraints:

  • (SA‑C0) Work conformance applies. Because U.SpeechAct <: U.Work, a speech‑act record MUST satisfy U.Work conformance (A.15.1), including the required anchors (isExecutionOf, performedBy, executedWithin, window, and state‑plane / judgement‑context anchoring). A speech act MUST have at least one affected referent (the thing it is about/updates), even if it is purely governance‑state.
  • (SA‑C1) PerformedBy must be an accountable actor. performedBy MUST resolve to a RoleAssignmentRef whose holder is an accountable system/party in the named scope. It MUST NOT be a spec/interface/document as an episteme.
  • (SA‑C2) ActTypes are required and context-local. actTypes MUST contain at least one SpeechActTypeRef recognized in the Work’s judgement context (local meaning). Free‑text verbs are nonconformant unless registered as a context token.
  • (SA‑C3) Time honesty. window MUST be explicit (or inherited from the parent U.Work record) so freshness rules can be evaluated.
  • (SA‑C4) If used for gating/audit, it must be observable. If a speech act is used as a checklist criterion, guard condition, or provenance hook for a U.Commitment, the model SHALL include at least one observable handle: utteranceRefs and/or carrierRefs. When the act is used as evidence, at least one carrier reference SHOULD be SCR/RSCR‑resolvable per A.10.
  • (SA‑C5) Institutional effects are references, not paraphrases. When the act is intended to institute/update commitments, role assignments, or statuses, institutes.* SHOULD reference the corresponding object IDs/claim IDs rather than restating content.
  • (SA‑C6) Cross-context use is Bridge-only. If a SpeechActRef is used for checking/gating/provenance in a different bounded context than the act’s judgement context, the referencing object MUST satisfy the spec’s cross-context discipline by citing an explicit Bridge/policy that licenses the interpretation (and surfacing congruence vs loss where applicable), rather than assuming equivalence by label.