Spaces:
Sleeping
Sleeping
| # 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? | |