# ChatGPT on Sparse Data Representations

**URL:** <https://forum.thousandbrains.org/t/chatgpt-on-sparse-data-representations/960>\
**Category:** Research and Theory\
**Tags:** sdr, sparse-data-represen, voting\
**Created:** [January 17, 2026, 5:51am UTC](https://forum.thousandbrains.org/t/chatgpt-on-sparse-data-representations/960 "2026-01-17T05:51:25Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![Rich\_Morin](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.thousandbrains.org/rich_morin/32/89_2.png) [@Rich\_Morin](https://forum.thousandbrains.org/u/Rich_Morin)\
**Post date:** [January 18, 2026, 12:02am UTC](https://forum.thousandbrains.org/t/chatgpt-on-sparse-data-representations/960/5 "2026-01-18T00:02:06Z")

</div>

## Query 2 — I’d like more information on how an SDR might be calculated from a collection of numeric values, keywords, etc.

> **ChatGPT said:**
>
> ### 1. Core rules an SDR encoder must satisfy
> 
> - Fixed dimensionality
> - Fixed sparsity
> - Semantic locality
> - Determinism
> - Union safety
> 
> ### 2. Encoding scalar numeric values
> 
> #### 2.1 Bucketed scalar encoder
> 
> - Range: 0–100
> - SDR size: 2048
> - Active bits: 40
> - Window width: 40
> 
> #### 2.2 Random distributed scalar encoder
> 
> - Uses PRNG seeded by bucket index
> - Overlap proportional to value similarity
> 
> ### 3. Encoding vectors / coordinates
> 
> #### 3.1 Independent axis encoders + union
> 
> - SDR(x, y) = SDR\_x(x) OR SDR\_y(y)
> 
> #### 3.2 Grid-cell–inspired encoders
> 
> - Multiple periodic encoders at different scales
> - Union across scales
> 
> ### 4. Encoding keywords / symbols
> 
> #### 4.1 Hash-based categorical encoder
> 
> - Hash string into multiple bits
> 
> #### 4.2 Semantic field encoding
> 
> - “mug” close to “cup”
> - Union of related symbols
> 
> ### 5. Encoding sets, lists, and structured data
> 
> #### 5.1 Sets
> 
> - OR multiple SDRs
> 
> #### 5.2 Key-value pairs
> 
> - Use binding (XOR, permutation, region-based)
> 
> ### 6. Encoding time and sequences
> 
> - Temporal pooling
> - Context windows
> - SDR\_t = SDR(input\_t) OR permute(SDR\_{t-1})
> 
> ### 7. A worked example
> 
> - touch\_force = 3.2
> - surface = “smooth”
> - location = (x=12.4, y=7.9)
> 
> SDR = SDR\_force(3.2) OR SDR\_surface(“smooth”) OR SDR\_x(12.4) OR SDR\_y(7.9)
> 
> ### 8. Practical parameter ranges
> 
> - SDR size: 1024–8192 bits
> - Active bits: 20–100
> - Union limit: ~10–20 items

---

_[View the full topic](https://forum.thousandbrains.org/t/chatgpt-on-sparse-data-representations/960)._
