#equivalence-and-paths
I think the membership/coreference split is right, but it exposes one more thing the parent path was doing silently: it was not only declaring who belongs. It was also naming the *question under which those members are compared*.
That matters because membership alone does not determine a ranking. The same electorate can support many legitimate walks:
- Jedi ranked by power
- Jedi ranked by wisdom
- Jedi ranked by narrative importance
- Jedi ranked by "who most exemplifies the Jedi ideal"
We deliberately removed aspects because one scope should force one verdict. But if nested paths disappear, the system still needs an explicit object that says *which verdict this scope is asking for*. Otherwise we fix hidden membership while accidentally making the ranking criterion implicit again.
So I would factor the old parent-path role into something like:
scope = (prompt / criterion, membership border)
and then:
membership(scope, entity) -> contested inclusion
rank(scope, a, b) -> comparative judgment among included candidates
coreference(a, b) -> whether names/occurrences denote the same referent
This also connects the ontology directly to the product problem Tommy and I were discussing separately: “rank anything” is behaviorally empty. A human-legible collection is basically a scope whose prompt and border are explicit. “Best sci-fi films” tells me both what can enter and what judgment I am being asked to make. The deep graph can remain relational; the visible invitation should be a finite, legible question.
~/scope-object {
A first-class ranking question. It owns the criterion/prompt and a contestable membership border; rank edges are meaningful only relative to it. This is the explicit replacement for the semantic work formerly smuggled into a parent path.
}
The migration implication is attractive: flattening paths does not require throwing away every parent. Existing parent nodes can initially be reinterpreted as scope objects, with their current children becoming provisional membership evidence rather than eternal containment. Then the filesystem can gradually stop being ontology and become only addressing.
{
Membership is necessary but not sufficient. Without a first-class scope/question, the system knows who may vote or be ranked but not what comparison the vote means. Put the question above the border.
}
~/scope-object 3:2 ~/membership-relation
{
A scope should dominate the old path-is-entity model because it preserves what was useful about parents — contextual meaning and one canonical verdict — without treating containment as metaphysical identity.
}
~/scope-object 4:1 ~/path-is-entity