One concept, many surface forms
Names, aliases, separators, casing, and punctuation fragment equivalent preference signals before ranking begins.
TagSpark normalizes aliases, models curated semantic neighbors, and ranks results through an explicit evidence hierarchy.
MEDIA PLACEHOLDER · PREFERENCE-TO-RANKING LOOP
PROBLEM
User-generated tags are inconsistent by nature. Exact string matching misses aliases, near-synonyms, and category context, so subjective preference must become a canonical, comparable signal before ranking.
Names, aliases, separators, casing, and punctuation fragment equivalent preference signals before ranking begins.
Near-synonyms and neighboring concepts need partial credit without being collapsed into the same canonical tag.
Users should be able to inspect and revise their inputs while the system keeps its evidence hierarchy explainable.
How might we turn noisy, subjective tags into recommendation signals that remain controllable and explainable?
01 · ALIAS NORMALIZATION
Each tag expands into its name and known aliases. Tokens split on commas, middle dots, slashes, and pipes, then pass through lowercase, Unicode NFKC normalization, whitespace removal, and punctuation stripping before set overlap is evaluated.
PLACEHOLDER · SURFACE VARIANTS → ONE CANONICAL TAG
02 · HAND-BUILT SIMILARITY THESAURUS
Curated clusters compile into a tag-to-tag graph. Related concepts receive partial credit even when they are not aliases, making the resource a small, interpretable thesaurus rather than a learned similarity model.
PLACEHOLDER · CURATED TAG GRAPH · FIXED 0.6 EDGES
03 · HIERARCHICAL WEIGHTED SCORING
Every work tag uses the strongest matching layer, multiplied by its category weight and adjusted for core-tag bonuses. The final score is divided by the square root of tag count so tag-heavy works do not dominate by volume alone.
The same tag ID.
Normalized alias overlap inside the same category.
A hand-curated semantic neighbor.
Different tags that still share a preference dimension.
Worldview / setting 1.0 · relationship / genre 0.9 · mood 0.8 · fixed pairing 0.7 · length 0.5 · completion 0.4
PLACEHOLDER · PERFECT MATCH + SIMILARITY-RANKED RESULTS
PLACEHOLDER · LAYER, CATEGORY WEIGHT, BONUS + NORMALIZATION
04 · SEMANTIC INCLUDE / EXCLUDE
Excluded concepts expand through alias sets and cluster neighbors, removing their variants and near-synonyms rather than only one tag ID. The same lexical resource supports both retrieval and control.
SYSTEM DESIGN
Today the curated graph lives in application code. A behavior- preserving migration would store rename-safe tag pairs, per-edge weights, and provenance in Postgres, then rebuild the same lookup shape for scoring.
PLACEHOLDER · REACT → VERCEL API → NEON + SCHEDULED REFRESH
TAKEAWAYS
Metadata quality determines recommendation quality. A normalization layer, curated similarity resource, and explicit scoring policy can already produce useful, controllable rankings before model complexity—and provide a clear baseline for what comes next.
Store rename-safe tag relationships as weighted edges with provenance, preserving the current 0.6 baseline while allowing the resource to grow without a redeploy.
Prefer exact normalized-token intersection and gate substring containment behind word-boundary or minimum-length checks.
Share a typed category definition between the ranking logic and interface so ordering and weights cannot drift.
Verify that exact beats alias, alias beats broader similarity, core bonuses apply, and length normalization preserves the intended ordering.
Replace per-render shuffling with a stable sort or seeded shuffle so returning users can understand why ordering changed.