Context
Split from #19. Implements IEnrichmentProvider for Wikidata, covering person quotes. Depends on the shared enrichment scaffold (#19); does not depend on TMDB (#35), Open Library (#36), or TVDB (#46).
API details
| Property |
Value |
| Base URL |
https://www.wikidata.org |
| Auth |
None required |
| Rate limit |
No hard limit for modest use; set a User-Agent header per Wikidata bot policy |
| Endpoints |
/w/api.php?action=wbsearchentities (search), /wiki/Special:EntityData/{id}.json (fetch) |
What gets enriched
| Field |
How |
date |
Wikidata P569 (date of birth) → year; fallback only if no speech date is known |
author |
Confirm or normalise spelling against the Wikidata canonical English label |
Implementation checklist
Notes
Context
Split from #19. Implements
IEnrichmentProviderfor Wikidata, coveringpersonquotes. Depends on the shared enrichment scaffold (#19); does not depend on TMDB (#35), Open Library (#36), or TVDB (#46).API details
https://www.wikidata.orgUser-Agentheader per Wikidata bot policy/w/api.php?action=wbsearchentities(search),/wiki/Special:EntityData/{id}.json(fetch)What gets enriched
dateP569(date of birth) → year; fallback only if no speech date is knownauthorImplementation checklist
WikidataEnrichmentProvider : IEnrichmentProviderinQuotinator.EnrichmentSupportedTypes:personwbsearchentitiesbyauthorfield value withtype=itemP569(date of birth) → year stringauthorfield spellingscripts/cache/wikidata/User-Agentrequest header (e.g.Quotinator-Enrichment/1.0)--dry-run,--no-fetch, and--providerflags from the scaffoldNotes
personquotes,dateis the date the quote was said, not birth year — only use birth year as a fallback; log the distinction clearly