Book Database Whitepaper
Building the Foundational Knowledge Graph for Personalized Human Growth
1. Introduction
Books remain the most comprehensive and enduring source of self-improvement knowledge. Yet the ecosystem is fragmented: thousands of titles overlap, contradict, or go unnoticed by the people who could benefit from them. Readers face bestseller noise, influencer bias, and generic lists with no path to personal application.
The Uvilo Self-Help Book Database fixes that by structuring global self-help literature into a unified, intelligent system mapped directly to the Uvilo Taxonomy (Issues, Aspirations, Practices across the eleven Domains of Life Balance). The result is a curated, contextualized, and actionable knowledge graph powering personalized recommendations, coaching tools, and adaptive learning programs.
2. Objectives
- Comprehensive, structured catalog of English-language self-help books.
- First-class links to the Taxonomy (issues, aspirations, practices, and domains).
- Personalized discovery and guidance via hybrid recommendations and embeddings.
- Programmatic learning artifacts (lessons, habits, metrics, quizzes) derived from books.
- Extensible architecture to later include videos, podcasts, courses, and articles.
This database is the cornerstone of Uvilo’s knowledge graph—the bridge between human goals and the information needed to reach them.
3. Data Sources and Acquisition Strategy
3.1 Public APIs
- Google Books API — Broad metadata (title, authors, ISBN, publisher, description).
- Open Library API — Open bibliographic data (strong for older/public-domain).
- CrossRef & Semantic Scholar — Citations/DOIs for academically grounded works.
- Retailer/Affiliate APIs — Pricing, availability, and purchase links (Amazon PA-API, Bookshop.org, Audible API).
3.2 Web Scraping (when APIs fall short)
- Scope: public metadata (title, summary, rating, review counts), not full text.
- Controls: polite crawling, rate limiting, rotate identities, robots.txt compliance.
- Verification: multi-source reconciliation to reduce noise and duplication.
3.3 Human Curation
- Priority titles are hand-reviewed for taxonomy alignment.
- Editorial style guide enforces consistent naming, tags, and mappings.
3.4 Copyright and Licensing
- Store metadata and fair-use excerpts only unless content is open-license.
- Keep attribution and outbound links to publishers/retailers.
- Respect API ToS; cache only permitted fields; document provenance.
4. Metadata Model
Each book is a structured entity linked to taxonomy nodes. The base model is Resource, which maintains polymorphic relations to Books, Videos, and other types of self-help resources. This is implemented using PostgreSQL + pgvector for embeddings. Ta tags as String[], and links to Taxonomy issues/aspirations/practices via foreign keys (join table). See full schemas in Appendices.
4.1 Core Fields
| field | type | description |
|---|---|---|
| id | String | Primary key (CUID) |
| createdAt | DateTime | Inserted timestamp |
| updatedAt | DateTime | Updated timestamp |
| title | String | Book title |
| subtitle | String? | Optional subtitle |
| authors | String[] | Primary author names (normalized) |
| publisher | String? | Publisher or imprint |
| publishedYear | Int? | Year of publication |
| isbn10 | String? | ISBN-10 |
| isbn13 | String? | ISBN-13 |
| language | String | Language code (e.g., en) |
| description | Text? | Publisher or extracted summary |
| purchaseLinks | Json | Links to Amazon, Audible, Bookshop, etc. |
| rating | Float? | Aggregated external rating (0–5) |
| reviewsCount | Int? | Count of ratings or reviews |
| tags | String[] | Topic/theme keywords (editorial) |
| titleEmbedding | Vector(1536) | pgvector embedding of title/subtitle |
| summaryEmbedding | Vector(1536) | pgvector embedding of description |
| status | PublishStatus | Visibility flag |
Why String[] for tags? Editorial agility and speed. Taxonomy semantics are modeled with foreign keys, not tags.
4.2 Taxonomy Relations (FK joins)
Books link to the Taxonomy through a generic join with a role enum. This keeps a single table for all relations and allows strict constraints.
- Join model: BookTaxonomy
- Type enum: TaxonomyType = issue | aspiration | practice
5. Data Ingestion and Normalization
ETL (Extract, Transform, Load) pipeline:
- Extract — Pull from APIs, scrape when necessary (metadata only).
- Transform — Clean names, dedupe, enrich (ratings, citations), compute embeddings.
- Load — Upsert canonical records; attach taxonomy relations with weights/notes.
5.1 Deduplication & Canonicalization
- Keys:
(isbn13), fallback to(title, authors[])with trigram/fuzzy thresholds. - Normalize author names; unify publisher strings.
- Edition handling: master record + edition variants (optional Phase 2).
5.2 Enrichment
- NLP keyword extraction; embeddings for semantic search.
- Popularity metrics: ratings, reviewsCount, salesRank when available.
- Confidence scores on auto-tagging to guide human review.
5.3 Validation
- Automated schema/constraint checks.
- Editorial queue for top-impact titles and low-confidence mappings.
6. Integration with the Uvilo Taxonomy
6.1 Automated Mapping
- Embedding similarity against Taxonomy names/descriptions/tags.
- TF‑IDF and keyword heuristics for transparent matches.
- Threshold+top‑k strategy to create draft BookTaxonomy rows.
6.2 Manual Curation
- Editors confirm/revise relations; add role (ISSUE/ASPIRATION/PRACTICE).
- Apply weights (e.g., 60, 80, 100) to express relevance strength.
- Document rationales in
notefor auditability.
6.3 Cross-Linking
- The same Taxonomy nodes will later link videos, podcasts, courses—enabling multi-modal guidance via one semantic spine.
7. Recommendation and Discovery
7.1 Hybrid Approach
- Content-based: embeddings + taxonomy overlap.
- Collaborative: implicit feedback (clicks, saves), explicit ratings.
- Contextual: prioritize active domains, declared issues/aspirations, recency.
7.2 Example (minimal)
User flags chronicStress. System returns books linked via (chronic_stress → mindfulness_basic); adjacent Mind/Work content expands options without diluting relevance.
7.3 Metrics
- CTR to detail page; add-to-plan; completion of practice plans.
- Relevance precision@k; user satisfaction (thumbs/ratings).
- Conversion to purchase (Amazon/Bookshop/Audible).
8. Implementation Roadmap
Phase 1: Foundation
- Top ~500 canonical titles; manual taxonomy mapping.
- API connectors; initial embeddings; basic search.
Phase 2: Scale & Automate
- +2,000 titles; auto-tagging + review queues.
- Public discovery endpoints; richer metadata (awards, editions).
Phase 3: Intelligence
- Personalized plans; adaptive summaries; sequence recommendations.
- Cross-modal expansion (videos, podcasts, courses).
Phase 4: Globalization
- Multilingual ingestion; regional curation; publisher partnerships.
- Continuous model retraining and A/B optimization.
9. Shared Architecture and Ethics (abridged)
- DB stack: PostgreSQL + pgvector; Prisma/ZenStack models; GIN/ivfflat indexes.
- APIs: REST/GraphQL; endpoints for search, nearest-neighbor, taxonomy lookups.
- Governance: editorial review, versioning, provenance.
- Compliance: metadata-only storage; ToS-compliant scraping; attribution across UI.
- Privacy: no PII in book records; recommendation explanations available.
10. Conclusion
The Uvilo Self-Help Book Database turns a noisy market into a navigable, personalized map of wisdom. By anchoring every title to the Uvilo Taxonomy and layering embeddings, we deliver precise, explainable recommendations and ready-to-use practice plans.
Books are the starting block. With the same spine, we’ll unify videos, podcasts, and courses—turning scattered insights into a living system for human growth.