# Kink Data Plan ## Objectives - Build a canonical kink catalog with aliases, definitions, and safety notes. - Attach image or illustration assets only when source, license, and provenance are clear. - Support three independent similarity systems: - text similarity - visual similarity - behavioral similarity ## Source classes ### Definitions and safety - National Coalition for Sexual Freedom - TASHRA - Other reusable educational sources with explicit license terms ### Taxonomy breadth and aliases - BDSMchecklist - KinkList and similar openly licensed checklist projects - Manually curated normalization when source terms overlap or conflict ### Images and illustrations - Wikimedia Commons - Openverse - Flickr Creative Commons - Wellcome Collection - Commissioned or generated illustrations for long-tail categories with poor reusable imagery ## Canonical tables ### `kinks` - `id` - `name` - `cluster` - `short_definition` - `long_definition` - `risk_level` - `is_extreme` - `notes` ### `aliases` - `id` - `kink_id` - `alias` - `source_id` ### `definitions` - `id` - `kink_id` - `source_id` - `text` - `tone` - `license` - `source_url` ### `images` - `id` - `kink_id` - `source_id` - `asset_url` - `thumbnail_url` - `mime_type` - `license` - `creator` - `attribution_text` - `is_explicit` - `is_illustration` - `visual_tags` ### `sources` - `id` - `name` - `source_type` - `base_url` - `license_model` - `notes` ### `similarity_edges` - `left_kink_id` - `right_kink_id` - `similarity_type` - `score` - `method` - `version` ## Normalization workflow 1. Import raw candidate terms from checklist and educational sources. 2. Collapse aliases into canonical `kinks`. 3. Mark distinctions that must stay separate. Examples: - `feet interest` vs `foot worship` vs `footjob` - `edging` vs `orgasm denial` vs `forced orgasm` - `oral fixation` vs `messy oral` vs `spit play` vs `emetophilic play` 4. Attach source-backed definitions. 5. Attach only license-safe image candidates. 6. Compute text and visual embeddings. 7. Later, add behavioral co-like edges from app usage or other lawful source data. ## Similarity architecture ### Text - Use `sentence-transformers` on names, aliases, definitions, examples, and safety notes. ### Visual - Use OpenCLIP embeddings over illustrations and example images. - Store per-image vectors and derive per-kink centroids plus diversity-aware exemplars. ### Behavioral - Build co-occurrence edges from first-party ratings. - Keep behavioral similarity separate from text and visual similarity so rare or taboo interests are not drowned out. ## Evaluation questions - Does discovery surface close matches without collapsing distinct kinks together? - Does the system expose rare or esoteric kinks early enough for the right users? - Do visuals help disambiguate categories or create misleading shortcuts? - Are overlap results useful for partners when interests are adjacent rather than identical?