Package com.darkcollective.relix.symbol.graph.internal
com.darkcollective.relix.symbol.graph: not exported by the published
artifact. What follows describes the package as a whole, as it stood before the split.
The schema graph — relationship metadata between relations.
A SchemaGraph is a set of
Relationship edges, each a
named, multiplicity-bounded connection between two
endpoints (a relation
plus an ordered column list). The graph makes join-path resolution mechanical
— for a set of relations a query touches, the join is the minimal connected
subgraph spanning them — and its bounds are join-selectivity facts for the
cost model.
Every edge carries an EdgeOrigin
recording how it was acquired (declared in source, learned in conversation or
from observed usage, or inferred from data), which keeps non-declared edges
visibly provisional and correctable.
SchemaGraphSearch is the
mechanical core of §3: given the terminal relations a request touches, it
enumerates the minimal connected subgraph(s) — a Steiner tree over the small
graph — spanning them, returning a unique
JoinPath, several enumerated
alternatives (the "did you mean?" ambiguity case), or a disconnected outcome.
This package is pure representation and search: assembly from declarations
and validation against inferred schemas live in relix-semantic; the
graph is exposed on the SemanticModel.
-
ClassDescriptionOne connected join path through the
SchemaGraph: an ordered set ofRelationshipedges spanning a set of terminal relations, plus the relations those edges touch.The outcome of aSchemaGraphSearchover a set of terminal relations, one of three shapes: Unique (PathSearchResult.unique()) — exactly one minimal path spans the terminals, and no terminal was unreachable.Minimal-path (Steiner-tree) search over aSchemaGraph.