DEV Community

sam lee
sam lee

Posted on

Building a timed naming challenge with live knowledge-graph checks

Building a timed naming challenge with live knowledge-graph checks

Timed trivia looks simple until you try to score it fairly.

If you let players type free-form names — athletes, inventors, musicians, politicians — you immediately hit messy problems: spelling variants, duplicate identities, and “is this person actually famous enough?” Without a shared source of truth, every answer becomes a judgment call.

Why a knowledge graph helps

A public knowledge graph (for example Wikidata) gives you stable entity IDs, gender/occupation metadata, and alias lists. That means your game can accept “Muhammad Ali” and “Cassius Clay” as the same person, reject empty celebrity-adjacent guesses, and keep scoring consistent across sessions.

The UX pattern that works well:

  1. Start a timer
  2. Accept one name at a time
  3. Validate against the graph in near real time
  4. Show progress toward a round goal (often 100)

That loop is more interesting than a static quiz form because players feel the clock and the validation feedback together.

Practical implementation notes

A few details matter more than the UI polish:

  • Normalize input early — trim, collapse spaces, and lowercase only for matching, not for display.
  • Cache recent lookups — the same names get typed a lot; don’t hammer the API.
  • Be honest about false negatives — obscure but real people may fail validation; surface a clear “not found” state instead of a soft accept.
  • Keep the client thin — validate on the server so keys and rate limits stay out of the browser.

If you’re prototyping, start with one category and one validation rule (for example: must resolve to a human entity matching a gender filter). Expand categories only after the scoring feel is right.

Try the live version

I put a small free build of this idea online if you want to feel the loop before writing your own. You can play name 100 men with a timer and live checks — useful as a reference for pacing, error states, and how strict validation should feel.

After you try a round, note where you stalled. Those stalls are usually product clues: weak autocomplete, slow validation, or categories that are too broad for a satisfying finish rate.

Top comments (0)