# Folksy Idiom Generator — Project Spec

## Overview

Build a procedural fake-proverb generator that produces sayings which *sound* like real folk wisdom but are semantically hollow. The system uses ConceptNet 5 relationships between concrete nouns to fill typed slots in proverb templates, ensuring every generated saying contains real-world object relationships dressed up in wisdom-sounding syntax.

The core insight: real folk sayings encode real relationships (corn feeds chickens, ducks live on ponds, pickles are cucumbers plus dill). Fake sayings use the *same* real relationships in proverb-shaped sentence frames. The listener validates the semantic links, parses the structure as wisdom, and then realizes it doesn't actually *teach* anything. That gap is the humor.

## File Organization

```
folksy-generator/
├── FOLKSY_GENERATOR_SPEC.md          # This file
├── folksy_generator.py               # Main CLI tool
├── data/
│   ├── folksy_vocab.csv              # Curated vocabulary
│   ├── folksy_relations.csv          # Relationship edges
│   └── classified_proverbs.csv       # Labeled real proverbs
├── schemas/
│   └── fictional_entities.schema.json
├── examples/
│   ├── my_world.json                 # Example fictional entities
│   └── sample_output.txt             # Example generated sayings
└── scripts/
    └── extract_from_conceptnet.py    # One-time extraction script (requires psql access)
```

## Data Sources

- PostgreSQL database `conceptnet5` with full ConceptNet 5 dataset (37M edges, 33M nodes, 50 relation types)
- Curated folksy vocabulary: 500-800 concrete nouns tagged with categories
- Relationship edges between vocabulary words with typed relations and confidence weights

## Meta-Template Families

1. **deconstruction** — "A without B is just humble D"
2. **denial_of_consequences** — "Don't create conditions for B and deny B"
3. **ironic_deficiency** — "Producer of X lacks X"
4. **futile_preparation** — "Like doing A and hoping for unrelated Y"
5. **hypocritical_complaint** — "Consumes X, complains about Y"
6. **tautological_wisdom** — "Obviously X leads to Y, stated as wisdom"
7. **false_equivalence** — "A is just B with/without property P"

See full spec in project history for detailed template definitions and example chains.
