PM-FLT-0080
No fixed position binds the transitioning object to the proposition
An implementation MUST NOT assume that the object whose State changes occupies any particular position in the Filter's proposition. The Operation names what it transitions; the proposition states what must hold for it to be applicable. The two are independent in the sources' own worked example.
Non-normative, and this supersedes an inference of ours rather than a source's claim.
The blog's Filter table (IMG:filter-and-operations) has seven rows. Read the Operation against the proposition positions:
| Row | Subject State | Object State | Operation | Transitions | |---|---|---|---|---| |
r3| — | New Artist | Create Artist | the Object | |r4| — | Created Artist | Instantiate User | neither | |r5| Created Artist | New User | Create User | the Object | |r6| Created Artist | Created User | Activate Artist | the Subject | |r7| — | Active Artist | Instantiate Artefact | neither | |r8| Active Artist | New Artefact | Create Artefact | the Object | |r9| Active Artist | Created Artefact | Publish Artefact | the Object |Four rows conform to the withdrawn PM-FLT-0030. Three do not, and they fail in two distinct ways.
r6is the direct counterexample:Activate Artisttransitions the Artist, which the proposition holds in the Subject position. Nothing about the row is unusual — it is the fourth of seven and sits between two conforming rows.
r4andr7fail differently and are arguably not counterexamples at all: an instantiate Operation brings a new object into existence, and a newly created object held no prior State, so it cannot occupy either position. On this reading the proposition for an instantiation is a pure precondition on a different object. That is a coherent design and it may be the intended one, but no source says so, and it means "the object the Filter is about" and "the object the Operation transitions" are simply different things.The engineering consequence is the opposite of the withdrawn assertion's. Evaluation cannot be a single inverse traversal from the target instance, because the target is not reliably at a known end of the predicate. Either the Operation must declare which Thing it transitions — which the table's
c4column effectively does, by naming it — or the engine must index both directions.MID-0002is written on the withdrawn assumption and needs revisiting before an evaluation engine is designed.
CONFLICT MUST NOT · draft · area FLT · since 0.1.1
Source
No source citation — trust token CONFLICT; see the reasoning above.
Relationships
Blocked by Q-G-0033