RunProvenance

@Serializable
data class RunProvenance(val modelName: String, val experimentName: String, val elementName: String, val policyLabel: String, val descriptor: DecisionSurfaceDescriptor)(source)

What produced a set of transitions: which model, which experiment, which element, which rule — and the descriptor that gives the rows their meaning.

@Serializable because a stored trajectory has to carry this with it. A row is positional: a_Mode = 2.0 is uninterpretable without the declaration saying that lever is CATEGORICAL over ["slow", "normal", "fast"], that it is a SETTING rather than a TRANSACTION, and where its bounds are. Column names carry position-to-name and nothing else. So a durable sink writes this object beside its rows and a reader refuses a trajectory that arrives without it — see ksl.modeling.decision.capture.TabularSink.

Constructors

Link copied to clipboard
constructor(modelName: String, experimentName: String, elementName: String, policyLabel: String, descriptor: DecisionSurfaceDescriptor)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard