In Memory Connected Components Finder
An in-memory ConnectedComponentsFinder that unions the endpoints of every non-vetoed edge with a simple union-find, then reports each id's component as its root.
This mirrors the union-find semantics in com.embabel.dice.projection.memory.DuplicateCollectorStrategy: vetoed edges never union their endpoints, the merge direction is deterministic (the smaller id becomes the root), and path compression keeps lookups cheap. Only ids present in propositionIds are returned, and an id that appears in no surviving edge is its own singleton component.
Functions
Link copied to clipboard
open override fun findComponents(runId: String, propositionIds: Set<String>, edges: List<CollectorCandidateEdge>): Map<String, String>