Problem Statement
Transformation rules (config/*.yml) are written by hand today. On databases without declared foreign keys (common in legacy systems), it's hard to spot semantically equivalent columns across tables (e.g. customer_id ↔ client_no ↔ odberatel_id).
Proposed Solution
- Use column name/type embeddings (from the
EmbeddingProvider port) and compute cosine similarity across all columns in the schema.
- For column pairs/groups above a similarity threshold, generate a candidate
relationships section as YAML (dry-run output for the user to review and approve).
- Add a new CLI subcommand, e.g.
sql-graph-visualizer analyze --suggest-rules, building on the existing analyze command.
Alternative Solutions
Pure structural heuristics (name/type matching without embeddings) — faster and has no embedding-provider dependency, but less accurate for differently named columns. Could serve as a fallback when no EmbeddingProvider is configured.
Use Case
Significantly shortens the most tedious part of onboarding a new database — hand-writing relationships rules — especially for databases without FK constraints.
Priority Level
Important
Implementation Ideas
- Start with an in-memory cosine similarity implementation in Go (no need to wait for the Neo4j/driver upgrade or native vector index) — trivial computationally at the scale of thousands of columns.
- Output a commented YAML diff/proposal rather than directly modifying the existing config.
Additional Context
Strongest candidate to implement first among the AI features — largely independent of the Neo4j upgrade issues since it can run fully in-memory.
Problem Statement
Transformation rules (
config/*.yml) are written by hand today. On databases without declared foreign keys (common in legacy systems), it's hard to spot semantically equivalent columns across tables (e.g.customer_id↔client_no↔odberatel_id).Proposed Solution
EmbeddingProviderport) and compute cosine similarity across all columns in the schema.relationshipssection as YAML (dry-run output for the user to review and approve).sql-graph-visualizer analyze --suggest-rules, building on the existinganalyzecommand.Alternative Solutions
Pure structural heuristics (name/type matching without embeddings) — faster and has no embedding-provider dependency, but less accurate for differently named columns. Could serve as a fallback when no
EmbeddingProvideris configured.Use Case
Significantly shortens the most tedious part of onboarding a new database — hand-writing
relationshipsrules — especially for databases without FK constraints.Priority Level
Important
Implementation Ideas
Additional Context
Strongest candidate to implement first among the AI features — largely independent of the Neo4j upgrade issues since it can run fully in-memory.