Skip to main content

Evaluation

One stateless evaluation: a protocol named from the host's catalog, a canon-case/1 case snapshot, the canon-evidence/1 records that go with it, the canon-decisions/1 explicit decisions taken for it and an optional trusted evaluation time go in; Canon's decision comes out, or a refusal naming the input it could not use. It decides and never acts, reads no clock and calls no network or model.

loom.evaluation is one of loom's bounded contexts. All domains.

Types​

ActionStatus​

loom.evaluation.ActionStatus is one of Admissible, ApprovalRequired and Blocked.

CaseSnapshot​

loom.evaluation.CaseSnapshot wraps Json and is not interchangeable with one: the whole value of naming it separately is the crossings the model then refuses.

ClaimValue​

loom.evaluation.ClaimValue is one of True, False and Unknown.

DecidedAction​

loom.evaluation.DecidedAction is a record of four fields:

  • action — String
  • status — loom.evaluation.ActionStatus
  • requires — List<String>
  • reasons — List<Json>

DecidedClaim​

loom.evaluation.DecidedClaim is a record of two fields:

  • claim — String
  • value — loom.evaluation.ClaimValue

DecidedObligation​

loom.evaluation.DecidedObligation is a record of two fields:

  • obligation — String
  • open — Boolean

EvaluationDecision​

loom.evaluation.EvaluationDecision is a record of seven fields:

  • protocol — loom.evaluation.ProtocolName
  • case — String
  • actions — List<loom.evaluation.DecidedAction>
  • claims — List<loom.evaluation.DecidedClaim>
  • obligations — List<loom.evaluation.DecidedObligation>
  • outcome — Optional<String>, which may be absent
  • canon — Json

EvaluationInput​

loom.evaluation.EvaluationInput is one of Request, Protocol, Snapshot, Evidence, Time and Decisions.

EvaluationRefusal​

loom.evaluation.EvaluationRefusal is a record of four fields:

  • input — loom.evaluation.EvaluationInput
  • evidence_index — Optional<Integer>, which may be absent
  • code — String
  • message — String

EvaluationRequest​

loom.evaluation.EvaluationRequest is a record of five fields:

  • protocol — loom.evaluation.ProtocolName
  • snapshot — loom.evaluation.CaseSnapshot
  • evidence — List<loom.evaluation.EvidenceRecord>
  • at — Optional<Timestamp>, which may be absent
  • decisions — List<loom.evaluation.ExplicitDecision>

EvidenceRecord​

loom.evaluation.EvidenceRecord wraps Json and is not interchangeable with one: the whole value of naming it separately is the crossings the model then refuses.

ExplicitDecision​

loom.evaluation.ExplicitDecision is a record of four fields:

  • decision — String
  • outcome — String
  • principal — String
  • case_revision — String

ProtocolName​

loom.evaluation.ProtocolName wraps String and is not interchangeable with one: the whole value of naming it separately is the crossings the model then refuses.

Three of the types above are reached by nothing else in this system: loom.evaluation.EvaluationDecision, loom.evaluation.EvaluationRefusal and loom.evaluation.EvaluationRequest. No entity, view, command, event, error or crossing names them, so it is either vocabulary something outside this specification uses or a leftover — and only a person can tell which.


Generated from loom v1 · model digest 687ce3d39bdb34d56d1fe0c221f558534fa9c3e8eda9e34862b5b742d61331e9 · contract digest slice-sha256/2:145aeb51320e9c7469cbc1391afdaf083e248696ba61584fce81ff87cf66218b. Do not edit this file; change the specification and regenerate it with task docs-generate.